Unionfs: remove unnecessary conditional inode lock
authorErez Zadok <ezk@cs.sunysb.edu>
Thu, 10 Jan 2008 11:59:15 +0000 (06:59 -0500)
committerRachita Kothiyal <rachita@dewey.fsl.cs.sunysb.edu>
Thu, 1 May 2008 23:03:29 +0000 (19:03 -0400)
This was intended to protect the inode during branch management, but that is
now done through our superblock rwsem.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
fs/unionfs/dentry.c

index 767225e61f3268a8bd7778adace5688480d52d32..4f67419324ec1320d761a56e532d40b3a75ebdd0 100644 (file)
@@ -33,7 +33,6 @@ static bool __unionfs_d_revalidate_one(struct dentry *dentry,
        int bindex, bstart, bend;
        int sbgen, dgen;
        int positive = 0;
-       int locked = 0;
        int interpose_flag;
        struct nameidata lowernd; /* TODO: be gentler to the stack */
 
@@ -100,16 +99,6 @@ static bool __unionfs_d_revalidate_one(struct dentry *dentry,
                interpose_flag = INTERPOSE_REVAL_NEG;
                if (positive) {
                        interpose_flag = INTERPOSE_REVAL;
-                       /*
-                        * During BRM, the VFS could already hold a lock on
-                        * a file being read, so don't lock it again
-                        * (deadlock), but if you lock it in this function,
-                        * then release it here too.
-                        */
-                       if (!mutex_is_locked(&dentry->d_inode->i_mutex)) {
-                               mutex_lock(&dentry->d_inode->i_mutex);
-                               locked = 1;
-                       }
 
                        bstart = ibstart(dentry->d_inode);
                        bend = ibend(dentry->d_inode);
@@ -128,8 +117,6 @@ static bool __unionfs_d_revalidate_one(struct dentry *dentry,
                        UNIONFS_I(dentry->d_inode)->lower_inodes = NULL;
                        ibstart(dentry->d_inode) = -1;
                        ibend(dentry->d_inode) = -1;
-                       if (locked)
-                               mutex_unlock(&dentry->d_inode->i_mutex);
                }
                /* on reval, als purge the odf dentry, if any */
                if (UNIONFS_D(dentry)->odf.dentry) {