Re: [f2fs-dev] [PATCH] f2fs: check free_sections for defragmentation

From: Jaegeuk Kim
Date: Wed Sep 07 2016 - 20:19:10 EST


On Wed, Sep 07, 2016 at 09:35:30PM +0800, Chao Yu wrote:
> Hi Jaegeuk,
>
> On 2016/9/2 4:46, Jaegeuk Kim wrote:
> > Fix wrong condition check for defragmentation of a file.
> >
> > Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
> > ---
> > 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 37c24be..a8aa6fd 100644
> > --- a/fs/f2fs/file.c
> > +++ b/fs/f2fs/file.c
> > @@ -2037,7 +2037,7 @@ static int f2fs_defragment_range(struct f2fs_sb_info *sbi,
> > * avoid defragment running in SSR mode when free section are allocated
> > * intensively
> > */
> > - if (has_not_enough_free_secs(sbi, sec_num)) {
> > + if (free_sections(sbi) <= sec_num) {
>
> Why don't we check dirty dentry/node/imeta blocks here? they will be generated
> at any time after f2fs_balance_fs. So, isn't original condition more strict than
> new one?

I just wanted to fix this without any multiple changes.
We can do like this as well. :)