]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
staging: lustre: statahead: lock leaks if statahead file recreated
authorLai Siyao <lai.siyao@intel.com>
Thu, 10 Nov 2016 17:30:51 +0000 (12:30 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Nov 2016 15:02:54 +0000 (16:02 +0100)
During statahead file may be recreated, though this is rare case,
current code will leak the lock, this patch will release lock in
this case.

Signed-off-by: Lai Siyao <lai.siyao@intel.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-7232
Reviewed-on: http://review.whamcloud.com/16841
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lustre/llite/statahead.c

index 0677513476ec1b975d674bdd1dc1b45f2307e583..b43955f097ab6873c84de8896d62d874ae82608e 100644 (file)
@@ -1475,6 +1475,7 @@ static int revalidate_statahead_dentry(struct inode *dir,
 
                                alias = ll_splice_alias(inode, *dentryp);
                                if (IS_ERR(alias)) {
+                                       ll_intent_release(&it);
                                        rc = PTR_ERR(alias);
                                        goto out_unplug;
                                }
@@ -1493,6 +1494,7 @@ static int revalidate_statahead_dentry(struct inode *dir,
                                       *dentryp,
                                       PFID(ll_inode2fid((*dentryp)->d_inode)),
                                       PFID(ll_inode2fid(inode)));
+                               ll_intent_release(&it);
                                rc = -ESTALE;
                                goto out_unplug;
                        }