[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <c3a3d3d2-dad4-a4fe-014f-3f5eb3561524@huawei.com>
Date: Wed, 15 Apr 2020 21:20:33 +0800
From: Zhiqiang Liu <liuzhiqiang26@...wei.com>
To: <viro@...iv.linux.org.uk>, <linux-fsdevel@...r.kernel.org>,
<linux-kernel@...r.kernel.org>
CC: <npiggin@...nel.dk>, <zyan@...hat.com>,
<hartleys@...ionengravers.com>, Yanxiaodan <yanxiaodan@...wei.com>,
Mingfangsen <mingfangsen@...wei.com>,
"wubo (T)" <wubo40@...wei.com>
Subject: [PATCH] dcache: unlock inode->i_lock before goto restart tag in,
d_prune_aliases
From: Zhiqiang Liu <liuzhiqiang26@...wei.com>
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@...wei.com>
Signed-off-by: Feilong Lin <linfeilong@...wei.com>
---
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
Powered by blists - more mailing lists