From: Erez Zadok Date: Fri, 19 Sep 2008 03:13:24 +0000 (-0400) Subject: Unionfs: unionfs_permission locking fixes X-Git-Tag: unionfs-2.5~1 X-Git-Url: https://git.fsl.cs.sunysb.edu/?a=commitdiff_plain;h=bf92b497b5fb40b1d919617769595ab2fc778805;p=unionfs-2.6.24.y.git Unionfs: unionfs_permission locking fixes Signed-off-by: Erez Zadok --- diff --git a/fs/unionfs/inode.c b/fs/unionfs/inode.c index d08c2aa7ba1..e43d4562a3a 100644 --- a/fs/unionfs/inode.c +++ b/fs/unionfs/inode.c @@ -789,6 +789,7 @@ static int unionfs_permission(struct inode *inode, int mask, int bindex, bstart, bend; const int is_file = !S_ISDIR(inode->i_mode); const int write_mask = (mask & MAY_WRITE) && !(mask & MAY_READ); + struct inode *inode_grabbed = igrab(inode); if (nd) unionfs_lock_dentry(nd->dentry, UNIONFS_DMUTEX_CHILD); @@ -869,6 +870,7 @@ out: unionfs_check_nd(nd); if (nd) unionfs_unlock_dentry(nd->dentry); + iput(inode_grabbed); return err; }