commit c5083e176750d02d8bf50c1960eba7e1d37dba1d
Author: Erez Zadok <[EMAIL PROTECTED]>
Date:   Thu Sep 18 23:20:58 2008 -0400

    Unionfs: unionfs_permission locking fixes
    
    Signed-off-by: Erez Zadok <[EMAIL PROTECTED]>

diff --git a/fs/unionfs/inode.c b/fs/unionfs/inode.c
index f5d0b1e..1c6b8d8 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;
 }
 
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs

Reply via email to