2022-10-18 01:11:25

by Jaegeuk Kim

[permalink] [raw]
Subject: [PATCH] f2fs: let's avoid to get cp_rwsem twice by f2fs_evict_inode by d_invalidate

f2fs_unlink
-> f2fs_lock_op
-> d_invalidate
-> shrink_dentry_list
-> iput_final
-> f2fs_evict_inode
-> f2fs_lock_op

Signed-off-by: Jaegeuk Kim <[email protected]>
---
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 a389772fd212..e104409c3a0e 100644
--- a/fs/f2fs/namei.c
+++ b/fs/f2fs/namei.c
@@ -632,6 +632,8 @@ static int f2fs_unlink(struct inode *dir, struct dentry *dentry)
goto fail;
}
f2fs_delete_entry(de, page, dir, inode);
+ f2fs_unlock_op(sbi);
+
#if IS_ENABLED(CONFIG_UNICODE)
/* VFS negative dentries are incompatible with Encoding and
* Case-insensitiveness. Eventually we'll want avoid
@@ -642,8 +644,6 @@ static int f2fs_unlink(struct inode *dir, struct dentry *dentry)
if (IS_CASEFOLDED(dir))
d_invalidate(dentry);
#endif
- f2fs_unlock_op(sbi);
-
if (IS_DIRSYNC(dir))
f2fs_sync_fs(sbi->sb, 1);
fail:
--
2.38.0.413.g74048e4d9e-goog


2022-10-20 01:31:59

by Chao Yu

[permalink] [raw]
Subject: Re: [f2fs-dev] [PATCH] f2fs: let's avoid to get cp_rwsem twice by f2fs_evict_inode by d_invalidate

On 2022/10/18 8:58, Jaegeuk Kim wrote:
> f2fs_unlink
> -> f2fs_lock_op
> -> d_invalidate
> -> shrink_dentry_list
> -> iput_final
> -> f2fs_evict_inode
> -> f2fs_lock_op
>
> Signed-off-by: Jaegeuk Kim <[email protected]>

Reviewed-by: Chao Yu <[email protected]>

Thanks,