On Wed, Apr 15, 2020 at 09:20:33PM +0800, Zhiqiang Liu wrote: > 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; > -- Doesn't __dentry_kill() already do the unlock, via dentry_unlink_inode()? - Eric