[PATCH v3] f2fs: fix CURSEG_HOT_DATA left space check

mason.zhang posted 1 patch 1 month, 4 weeks ago
fs/f2fs/segment.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v3] f2fs: fix CURSEG_HOT_DATA left space check
Posted by mason.zhang 1 month, 4 weeks ago
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
Re: [PATCH v3] f2fs: fix CURSEG_HOT_DATA left space check
Posted by Chao Yu 1 month, 2 weeks ago
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;
>  }
Re: [PATCH v3] f2fs: fix CURSEG_HOT_DATA left space check
Posted by Jaegeuk Kim 1 month, 2 weeks ago
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;
> >  }
>
Re: [PATCH v3] f2fs: fix CURSEG_HOT_DATA left space check
Posted by Chao Yu 1 month, 4 weeks ago
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,