2018-10-24 14:38:59

by Yunlong Song

[permalink] [raw]
Subject: [PATCH] f2fs: change segment to section in f2fs_ioc_gc_range

f2fs_ioc_gc_range skips blocks_per_seg each time, however, f2fs_gc moves
blocks of section each time, so fix it from segment to section.

Signed-off-by: Yunlong Song <[email protected]>
---
fs/f2fs/file.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 88b1246..8c06724 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -2155,7 +2155,7 @@ static int f2fs_ioc_gc_range(struct file *filp, unsigned long arg)
}

ret = f2fs_gc(sbi, range.sync, true, GET_SEGNO(sbi, range.start));
- range.start += sbi->blocks_per_seg;
+ range.start += sbi->blocks_per_seg * sbi->segs_per_sec;
if (range.start <= end)
goto do_more;
out:
--
1.8.5.2



2018-10-25 01:47:51

by Chao Yu

[permalink] [raw]
Subject: Re: [PATCH] f2fs: change segment to section in f2fs_ioc_gc_range

On 2018/10/24 22:35, Yunlong Song wrote:
> f2fs_ioc_gc_range skips blocks_per_seg each time, however, f2fs_gc moves
> blocks of section each time, so fix it from segment to section.

I'm okay with this change, BTW, I notice that I need to change it to use
sbi->blocks_per_seg * sbi->migration_granularity in my patchset if this
patch being merged firstly.

>
> Signed-off-by: Yunlong Song <[email protected]>
> ---
> fs/f2fs/file.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
> index 88b1246..8c06724 100644
> --- a/fs/f2fs/file.c
> +++ b/fs/f2fs/file.c
> @@ -2155,7 +2155,7 @@ static int f2fs_ioc_gc_range(struct file *filp, unsigned long arg)
> }
>
> ret = f2fs_gc(sbi, range.sync, true, GET_SEGNO(sbi, range.start));
> - range.start += sbi->blocks_per_seg;
> + range.start += sbi->blocks_per_seg * sbi->segs_per_sec;

use BLKS_PER_SEC() for cleanup?

> if (range.start <= end)
> goto do_more;
> out:
>


2018-10-30 12:39:04

by Yunlong Song

[permalink] [raw]
Subject: [PATCH v2] f2fs: change segment to section in f2fs_ioc_gc_range

f2fs_ioc_gc_range skips blocks_per_seg each time, however, f2fs_gc moves
blocks of section each time, so fix it from segment to section.

Signed-off-by: Yunlong Song <[email protected]>
---
fs/f2fs/file.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 88b1246..f981b6c 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -2155,7 +2155,7 @@ static int f2fs_ioc_gc_range(struct file *filp, unsigned long arg)
}

ret = f2fs_gc(sbi, range.sync, true, GET_SEGNO(sbi, range.start));
- range.start += sbi->blocks_per_seg;
+ range.start += BLKS_PER_SEC(sbi);
if (range.start <= end)
goto do_more;
out:
--
1.8.5.2


2018-10-31 03:41:41

by Chao Yu

[permalink] [raw]
Subject: Re: [PATCH v2] f2fs: change segment to section in f2fs_ioc_gc_range

On 2018/10/30 20:37, Yunlong Song wrote:
> f2fs_ioc_gc_range skips blocks_per_seg each time, however, f2fs_gc moves
> blocks of section each time, so fix it from segment to section.
>
> Signed-off-by: Yunlong Song <[email protected]>

Reviewed-by: Chao Yu <[email protected]>

Thanks,