fs/f2fs/segment.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
This fix combines the space check for data_blocks and dent_blocks when
verifying HOT_DATA segment capacity, preventing potential insufficient
space issues during checkpoint.
Fixes: bf34c93d2645 ("f2fs: check curseg space before foreground GC")
Signed-off-by: mason.zhang <masonzhang.linuxer@gmail.com>
---
fs/f2fs/segment.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/f2fs/segment.h b/fs/f2fs/segment.h
index db619fd2f51a..d8dae0049b6a 100644
--- a/fs/f2fs/segment.h
+++ b/fs/f2fs/segment.h
@@ -649,7 +649,7 @@ static inline bool has_curseg_enough_space(struct f2fs_sb_info *sbi,
get_ckpt_valid_blocks(sbi, segno, true);
}
- if (dent_blocks > left_blocks)
+ if (dent_blocks + data_blocks > left_blocks)
return false;
return true;
}
--
2.48.1
On 8/6/25 20:32, mason.zhang wrote: > This fix combines the space check for data_blocks and dent_blocks when > verifying HOT_DATA segment capacity, preventing potential insufficient > space issues during checkpoint. > > Fixes: bf34c93d2645 ("f2fs: check curseg space before foreground GC") > Signed-off-by: mason.zhang <masonzhang.linuxer@gmail.com> It breaks f2fs/005 of xfstests, can you please take a look? Thanks, > --- > fs/f2fs/segment.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/f2fs/segment.h b/fs/f2fs/segment.h > index db619fd2f51a..d8dae0049b6a 100644 > --- a/fs/f2fs/segment.h > +++ b/fs/f2fs/segment.h > @@ -649,7 +649,7 @@ static inline bool has_curseg_enough_space(struct f2fs_sb_info *sbi, > get_ckpt_valid_blocks(sbi, segno, true); > } > > - if (dent_blocks > left_blocks) > + if (dent_blocks + data_blocks > left_blocks) > return false; > return true; > }
On 08/20, Chao Yu wrote: > On 8/6/25 20:32, mason.zhang wrote: > > This fix combines the space check for data_blocks and dent_blocks when > > verifying HOT_DATA segment capacity, preventing potential insufficient > > space issues during checkpoint. > > > > Fixes: bf34c93d2645 ("f2fs: check curseg space before foreground GC") > > Signed-off-by: mason.zhang <masonzhang.linuxer@gmail.com> > > It breaks f2fs/005 of xfstests, can you please take a look? Ah, this was why I got failure. I'll drop this first. > > Thanks, > > > --- > > fs/f2fs/segment.h | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/fs/f2fs/segment.h b/fs/f2fs/segment.h > > index db619fd2f51a..d8dae0049b6a 100644 > > --- a/fs/f2fs/segment.h > > +++ b/fs/f2fs/segment.h > > @@ -649,7 +649,7 @@ static inline bool has_curseg_enough_space(struct f2fs_sb_info *sbi, > > get_ckpt_valid_blocks(sbi, segno, true); > > } > > > > - if (dent_blocks > left_blocks) > > + if (dent_blocks + data_blocks > left_blocks) > > return false; > > return true; > > } >
On 8/6/25 20:32, mason.zhang wrote: > This fix combines the space check for data_blocks and dent_blocks when > verifying HOT_DATA segment capacity, preventing potential insufficient > space issues during checkpoint. > > Fixes: bf34c93d2645 ("f2fs: check curseg space before foreground GC") > Signed-off-by: mason.zhang <masonzhang.linuxer@gmail.com> Reviewed-by: Chao Yu <chao@kernel.org> Thanks,
© 2016 - 2025 Red Hat, Inc.