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 */
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);
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,