[PATCH] dcache: unlock inode->i_lock before goto restart tag in, d_prune_aliases
From: Zhiqiang Liu
Date: Wed Apr 15 2020 - 09:21:12 EST
From: Zhiqiang Liu <liuzhiqiang26@xxxxxxxxxx>
coccicheck reports:
fs/dcache.c:1027:1-10:ÂsecondÂlockÂonÂlineÂ1027
In d_prune_aliases, before goto restart we should unlock
inode->i_lock.
Fixes: 29355c3904e ("d_prune_alias(): just lock the parent and call __dentry_kill()")
Signed-off-by: Zhiqiang Liu <liuzhiqiang26@xxxxxxxxxx>
Signed-off-by: Feilong Lin <linfeilong@xxxxxxxxxx>
---
fs/dcache.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/fs/dcache.c b/fs/dcache.c
index b280e07e162b..1532ebe9d9ca 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -1030,6 +1030,7 @@ void d_prune_aliases(struct inode *inode)
if (!dentry->d_lockref.count) {
struct dentry *parent = lock_parent(dentry);
if (likely(!dentry->d_lockref.count)) {
+ spin_unlock(&inode->i_lock);
__dentry_kill(dentry);
dput(parent);
goto restart;
--
2.19.1