GIT: unionfs2-2.6.27.y: Unionfs: remove unnecessary conditional inode lock
Erez Zadok
ezk at fsl.cs.sunysb.edu
Thu Aug 12 23:17:36 EDT 2010
commit 18aba2eef84d671c4af5eaf524f997fc595a9fd1
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date: Thu Dec 20 15:22:22 2007 -0500
Unionfs: remove unnecessary conditional inode lock
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 at cs.sunysb.edu>
diff --git a/fs/unionfs/dentry.c b/fs/unionfs/dentry.c
index 68c07ba..dc1aa39 100644
--- a/fs/unionfs/dentry.c
+++ b/fs/unionfs/dentry.c
@@ -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 */
@@ -87,16 +86,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);
@@ -115,8 +104,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);
}
result = unionfs_lookup_backend(dentry, &lowernd,
More information about the unionfs-cvs
mailing list