Re: [PATCH 3/5] f2fs: move f2fs_balance_fs to correct place in unlink

From: Jaegeuk Kim
Date: Thu Mar 07 2013 - 21:33:51 EST


2013-03-04 (ì), 15:10 +0900, Namjae Jeon:
> 2013/3/3, Jaegeuk Kim <jaegeuk.kim@xxxxxxxxxxx>:
> > 2013-03-02 (í), 12:41 +0900, Namjae Jeon:
> >> From: Namjae Jeon <namjae.jeon@xxxxxxxxxxx>
> >>
> >> Actual dirty of pages will occur in f2fs_delete_entry so move the
> >> f2fs_balance_fs just before deletion.
> >>
> >> Signed-off-by: Namjae Jeon <namjae.jeon@xxxxxxxxxxx>
> >> Signed-off-by: Amit Sahrawat <a.sahrawat@xxxxxxxxxxx>
> >> ---
> >> fs/f2fs/namei.c | 4 ++--
> >> 1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
> >> index 1a49b88..eaa86f5 100644
> >> --- a/fs/f2fs/namei.c
> >> +++ b/fs/f2fs/namei.c
> >> @@ -223,8 +223,6 @@ static int f2fs_unlink(struct inode *dir, struct
> >> dentry *dentry)
> >> struct page *page;
> >> int err = -ENOENT;
> >>
> >> - f2fs_balance_fs(sbi);
> >> -
> >> de = f2fs_find_entry(dir, &dentry->d_name, &page);
> >> if (!de)
> >> goto fail;
> >> @@ -236,6 +234,8 @@ static int f2fs_unlink(struct inode *dir, struct
> >> dentry *dentry)
> >> goto fail;
> >> }
> >>
> >> + f2fs_balance_fs(sbi);
> >> +
> >
> > I think we don't need to do this because of no issues on performance and
> > reliability.
> > In addition, it would be better to call f2fs_balance_fs without any
> > dentry page.
> Regarding moving âf2fs_balance_fsâ in unlink partâ we considered one scenario.
> Suppose â when the disk is full and it really needed to trigger the
> Garbage collection. But in this we considered one scenario. Letâs say
> the ânameâ being passed is for invalid file i.e., the file does not
> exist. So, primarily in this case â I think it should return
> immediately.
> In such cases it actually results in wrong timing results for the
> non-existence files.
> For this observation we thought that f2fs_balance_fs be instead called
> at a proper place i.e., after there is no lookup-failure.

If so, could you check all the locations of f2fs_balance_fs and write
one patch for whole things?
I suspect that many directory operations are exposed to this issue.
Thanks,

>
> Let me know your opinion.
> Thanks.
> >
> >> f2fs_delete_entry(de, page, inode);
> >>
> >> /* In order to evict this inode, we set it dirty */
> >
> > --
> > Jaegeuk Kim
> > Samsung
> >
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

--
Jaegeuk Kim
Samsung

Attachment: signature.asc
Description: This is a digitally signed message part