All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH] f2fs-tools: fix blocks allocation direction inside segment
@ 2018-05-08 14:16 Junling Zheng
  2018-05-14  8:09 ` Chao Yu
  0 siblings, 1 reply; 3+ messages in thread
From: Junling Zheng @ 2018-05-08 14:16 UTC (permalink / raw)
  To: jaegeuk, yuchao0; +Cc: miaoxie, linux-f2fs-devel

This fixes the block allocation direction from left to right inside
one segment despite of the direction of segment allocation.

Signed-off-by: Junling Zheng <zhengjunling@huawei.com>
---
 fsck/mount.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/fsck/mount.c b/fsck/mount.c
index 1396a2e..38d2aa2 100644
--- a/fsck/mount.c
+++ b/fsck/mount.c
@@ -1921,13 +1921,13 @@ int find_next_free_block(struct f2fs_sb_info *sbi, u64 *to, int left, int type)
 
 		if (se->valid_blocks == sbi->blocks_per_seg ||
 				IS_CUR_SEGNO(sbi, segno, type)) {
-			*to = left ? START_BLOCK(sbi, segno) - 1:
+			*to = left ? START_BLOCK(sbi, segno - 1) :
 						START_BLOCK(sbi, segno + 1);
 			continue;
 		}
 
 		if (se->valid_blocks == 0 && not_enough) {
-			*to = left ? START_BLOCK(sbi, segno) - 1:
+			*to = left ? START_BLOCK(sbi, segno - 1) :
 						START_BLOCK(sbi, segno + 1);
 			continue;
 		}
@@ -1949,7 +1949,10 @@ int find_next_free_block(struct f2fs_sb_info *sbi, u64 *to, int left, int type)
 			!f2fs_test_bit(offset, (const char *)se->cur_valid_map))
 			return 0;
 
-		*to = left ? *to - 1: *to + 1;
+		if (!(OFFSET_IN_SEG(sbi, *to + 1)) && left)
+			*to = START_BLOCK(sbi, segno - 1);
+		else
+			*to = *to + 1;
 	}
 	return -1;
 }
-- 
2.16.2


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [RFC PATCH] f2fs-tools: fix blocks allocation direction inside segment
  2018-05-08 14:16 [RFC PATCH] f2fs-tools: fix blocks allocation direction inside segment Junling Zheng
@ 2018-05-14  8:09 ` Chao Yu
  2018-05-18  0:58   ` Jaegeuk Kim
  0 siblings, 1 reply; 3+ messages in thread
From: Chao Yu @ 2018-05-14  8:09 UTC (permalink / raw)
  To: Junling Zheng, jaegeuk; +Cc: miaoxie, linux-f2fs-devel

On 2018/5/8 22:16, Junling Zheng wrote:
> This fixes the block allocation direction from left to right inside
> one segment despite of the direction of segment allocation.

Hmm.. there is no such restriction that we have to keep misc tools' allocation
algorithm line with kernel one, so I suggest that let's just keep original
codes. Jaegeuk, what's your opinion?

Thanks,

> 
> Signed-off-by: Junling Zheng <zhengjunling@huawei.com>
> ---
>  fsck/mount.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/fsck/mount.c b/fsck/mount.c
> index 1396a2e..38d2aa2 100644
> --- a/fsck/mount.c
> +++ b/fsck/mount.c
> @@ -1921,13 +1921,13 @@ int find_next_free_block(struct f2fs_sb_info *sbi, u64 *to, int left, int type)
>  
>  		if (se->valid_blocks == sbi->blocks_per_seg ||
>  				IS_CUR_SEGNO(sbi, segno, type)) {
> -			*to = left ? START_BLOCK(sbi, segno) - 1:
> +			*to = left ? START_BLOCK(sbi, segno - 1) :
>  						START_BLOCK(sbi, segno + 1);
>  			continue;
>  		}
>  
>  		if (se->valid_blocks == 0 && not_enough) {
> -			*to = left ? START_BLOCK(sbi, segno) - 1:
> +			*to = left ? START_BLOCK(sbi, segno - 1) :
>  						START_BLOCK(sbi, segno + 1);
>  			continue;
>  		}
> @@ -1949,7 +1949,10 @@ int find_next_free_block(struct f2fs_sb_info *sbi, u64 *to, int left, int type)
>  			!f2fs_test_bit(offset, (const char *)se->cur_valid_map))
>  			return 0;
>  
> -		*to = left ? *to - 1: *to + 1;
> +		if (!(OFFSET_IN_SEG(sbi, *to + 1)) && left)
> +			*to = START_BLOCK(sbi, segno - 1);
> +		else
> +			*to = *to + 1;
>  	}
>  	return -1;
>  }
> 


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [RFC PATCH] f2fs-tools: fix blocks allocation direction inside segment
  2018-05-14  8:09 ` Chao Yu
@ 2018-05-18  0:58   ` Jaegeuk Kim
  0 siblings, 0 replies; 3+ messages in thread
From: Jaegeuk Kim @ 2018-05-18  0:58 UTC (permalink / raw)
  To: Chao Yu; +Cc: miaoxie, linux-f2fs-devel

On 05/14, Chao Yu wrote:
> On 2018/5/8 22:16, Junling Zheng wrote:
> > This fixes the block allocation direction from left to right inside
> > one segment despite of the direction of segment allocation.
> 
> Hmm.. there is no such restriction that we have to keep misc tools' allocation
> algorithm line with kernel one, so I suggest that let's just keep original
> codes. Jaegeuk, what's your opinion?

Yeah, let's keep it as is.

> 
> Thanks,
> 
> > 
> > Signed-off-by: Junling Zheng <zhengjunling@huawei.com>
> > ---
> >  fsck/mount.c | 9 ++++++---
> >  1 file changed, 6 insertions(+), 3 deletions(-)
> > 
> > diff --git a/fsck/mount.c b/fsck/mount.c
> > index 1396a2e..38d2aa2 100644
> > --- a/fsck/mount.c
> > +++ b/fsck/mount.c
> > @@ -1921,13 +1921,13 @@ int find_next_free_block(struct f2fs_sb_info *sbi, u64 *to, int left, int type)
> >  
> >  		if (se->valid_blocks == sbi->blocks_per_seg ||
> >  				IS_CUR_SEGNO(sbi, segno, type)) {
> > -			*to = left ? START_BLOCK(sbi, segno) - 1:
> > +			*to = left ? START_BLOCK(sbi, segno - 1) :
> >  						START_BLOCK(sbi, segno + 1);
> >  			continue;
> >  		}
> >  
> >  		if (se->valid_blocks == 0 && not_enough) {
> > -			*to = left ? START_BLOCK(sbi, segno) - 1:
> > +			*to = left ? START_BLOCK(sbi, segno - 1) :
> >  						START_BLOCK(sbi, segno + 1);
> >  			continue;
> >  		}
> > @@ -1949,7 +1949,10 @@ int find_next_free_block(struct f2fs_sb_info *sbi, u64 *to, int left, int type)
> >  			!f2fs_test_bit(offset, (const char *)se->cur_valid_map))
> >  			return 0;
> >  
> > -		*to = left ? *to - 1: *to + 1;
> > +		if (!(OFFSET_IN_SEG(sbi, *to + 1)) && left)
> > +			*to = START_BLOCK(sbi, segno - 1);
> > +		else
> > +			*to = *to + 1;
> >  	}
> >  	return -1;
> >  }
> > 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-05-18  0:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-08 14:16 [RFC PATCH] f2fs-tools: fix blocks allocation direction inside segment Junling Zheng
2018-05-14  8:09 ` Chao Yu
2018-05-18  0:58   ` Jaegeuk Kim

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.