Message ID | 20240223205535.307307-5-jaegeuk@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 38fcb47642ae79f49ff5ee565efb38b8dab0099b |
Headers | show |
Series | [f2fs-dev,1/5] f2fs: check number of blocks in a current section | expand |
On 2024/2/24 4:55, Jaegeuk Kim wrote: > Don't block mounting the partition, if cap is 100%. > > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Reviewed-by: Chao Yu <chao@kernel.org> Thanks,
On Fri, Feb 23, 2024 at 12:56 PM Jaegeuk Kim <jaegeuk@kernel.org> wrote: > > Don't block mounting the partition, if cap is 100%. > > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> > --- > fs/f2fs/segment.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c > index 6d586ae8b55f..f11361152d2a 100644 > --- a/fs/f2fs/segment.c > +++ b/fs/f2fs/segment.c > @@ -904,6 +904,9 @@ int f2fs_disable_cp_again(struct f2fs_sb_info *sbi, block_t unusable) > { > int ovp_hole_segs = > (overprovision_segments(sbi) - reserved_segments(sbi)); > + > + if (F2FS_OPTION(sbi).unusable_cap_perc == 100) > + return 0; With this, f2fs will not execute GC. What is this 100 unusable_cap_perc used for? > if (unusable > F2FS_OPTION(sbi).unusable_cap) > return -EAGAIN; > if (is_sbi_flag_set(sbi, SBI_CP_DISABLED_QUICK) && > -- > 2.44.0.rc0.258.g7320e95886-goog > > > > _______________________________________________ > Linux-f2fs-devel mailing list > Linux-f2fs-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
On 02/26, Daeho Jeong wrote: > On Fri, Feb 23, 2024 at 12:56 PM Jaegeuk Kim <jaegeuk@kernel.org> wrote: > > > > Don't block mounting the partition, if cap is 100%. > > > > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> > > --- > > fs/f2fs/segment.c | 3 +++ > > 1 file changed, 3 insertions(+) > > > > diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c > > index 6d586ae8b55f..f11361152d2a 100644 > > --- a/fs/f2fs/segment.c > > +++ b/fs/f2fs/segment.c > > @@ -904,6 +904,9 @@ int f2fs_disable_cp_again(struct f2fs_sb_info *sbi, block_t unusable) > > { > > int ovp_hole_segs = > > (overprovision_segments(sbi) - reserved_segments(sbi)); > > + > > + if (F2FS_OPTION(sbi).unusable_cap_perc == 100) > > + return 0; > > With this, f2fs will not execute GC. What is this 100 > unusable_cap_perc used for? Theoritically, it won't, but I was hitting a GC loop, and I suspected a wrong section/segment layout. So, I posted the below, and guess we need this patch as workaround. https://patchwork.kernel.org/project/f2fs/patch/20240224011411.3820719-1-jaegeuk@kernel.org/ > > > if (unusable > F2FS_OPTION(sbi).unusable_cap) > > return -EAGAIN; > > if (is_sbi_flag_set(sbi, SBI_CP_DISABLED_QUICK) && > > -- > > 2.44.0.rc0.258.g7320e95886-goog > > > > > > > > _______________________________________________ > > Linux-f2fs-devel mailing list > > Linux-f2fs-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
On Mon, Feb 26, 2024 at 2:47 PM Jaegeuk Kim <jaegeuk@kernel.org> wrote: > > On 02/26, Daeho Jeong wrote: > > On Fri, Feb 23, 2024 at 12:56 PM Jaegeuk Kim <jaegeuk@kernel.org> wrote: > > > > > > Don't block mounting the partition, if cap is 100%. > > > > > > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> > > > --- > > > fs/f2fs/segment.c | 3 +++ > > > 1 file changed, 3 insertions(+) > > > > > > diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c > > > index 6d586ae8b55f..f11361152d2a 100644 > > > --- a/fs/f2fs/segment.c > > > +++ b/fs/f2fs/segment.c > > > @@ -904,6 +904,9 @@ int f2fs_disable_cp_again(struct f2fs_sb_info *sbi, block_t unusable) > > > { > > > int ovp_hole_segs = > > > (overprovision_segments(sbi) - reserved_segments(sbi)); > > > + > > > + if (F2FS_OPTION(sbi).unusable_cap_perc == 100) > > > + return 0; > > > > With this, f2fs will not execute GC. What is this 100 > > unusable_cap_perc used for? > > Theoritically, it won't, but I was hitting a GC loop, and I suspected a wrong > section/segment layout. So, I posted the below, and guess we need this patch > as workaround. > > https://patchwork.kernel.org/project/f2fs/patch/20240224011411.3820719-1-jaegeuk@kernel.org/ Reviewed-by: Daeho Jeong <daehojeong@google.com> > > > > > > if (unusable > F2FS_OPTION(sbi).unusable_cap) > > > return -EAGAIN; > > > if (is_sbi_flag_set(sbi, SBI_CP_DISABLED_QUICK) && > > > -- > > > 2.44.0.rc0.258.g7320e95886-goog > > > > > > > > > > > > _______________________________________________ > > > Linux-f2fs-devel mailing list > > > Linux-f2fs-devel@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 6d586ae8b55f..f11361152d2a 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -904,6 +904,9 @@ int f2fs_disable_cp_again(struct f2fs_sb_info *sbi, block_t unusable) { int ovp_hole_segs = (overprovision_segments(sbi) - reserved_segments(sbi)); + + if (F2FS_OPTION(sbi).unusable_cap_perc == 100) + return 0; if (unusable > F2FS_OPTION(sbi).unusable_cap) return -EAGAIN; if (is_sbi_flag_set(sbi, SBI_CP_DISABLED_QUICK) &&
Don't block mounting the partition, if cap is 100%. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> --- fs/f2fs/segment.c | 3 +++ 1 file changed, 3 insertions(+)