Loading fs/btrfs/ioctl.c +7 −11 Original line number Diff line number Diff line Loading @@ -846,11 +846,9 @@ static noinline int btrfs_mksubvol(struct path *parent, struct dentry *dentry; int error; inode_lock_nested(dir, I_MUTEX_PARENT); // XXX: should've been // mutex_lock_killable_nested(&dir->i_mutex, I_MUTEX_PARENT); // if (error == -EINTR) // return error; error = down_write_killable_nested(&dir->i_rwsem, I_MUTEX_PARENT); if (error == -EINTR) return error; dentry = lookup_one_len(name, parent->dentry, namelen); error = PTR_ERR(dentry); Loading Loading @@ -2377,11 +2375,9 @@ static noinline int btrfs_ioctl_snap_destroy(struct file *file, goto out; inode_lock_nested(dir, I_MUTEX_PARENT); // XXX: should've been // err = mutex_lock_killable_nested(&dir->i_mutex, I_MUTEX_PARENT); // if (err == -EINTR) // goto out_drop_write; err = down_write_killable_nested(&dir->i_rwsem, I_MUTEX_PARENT); if (err == -EINTR) goto out_drop_write; dentry = lookup_one_len(vol_args->name, parent, namelen); if (IS_ERR(dentry)) { err = PTR_ERR(dentry); Loading Loading @@ -2571,7 +2567,7 @@ static noinline int btrfs_ioctl_snap_destroy(struct file *file, dput(dentry); out_unlock_dir: inode_unlock(dir); //out_drop_write: out_drop_write: mnt_drop_write_file(file); out: kfree(vol_args); Loading fs/overlayfs/readdir.c +1 −3 Original line number Diff line number Diff line Loading @@ -218,9 +218,7 @@ static int ovl_check_whiteouts(struct dentry *dir, struct ovl_readdir_data *rdd) cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE); old_cred = override_creds(override_cred); inode_lock(dir->d_inode); err = 0; // XXX: err = mutex_lock_killable(&dir->d_inode->i_mutex); err = down_write_killable(&dir->d_inode->i_rwsem); if (!err) { while (rdd->first_maybe_whiteout) { p = rdd->first_maybe_whiteout; Loading fs/readdir.c +6 −6 Original line number Diff line number Diff line Loading @@ -35,13 +35,13 @@ int iterate_dir(struct file *file, struct dir_context *ctx) if (res) goto out; if (shared) if (shared) { inode_lock_shared(inode); else inode_lock(inode); // res = mutex_lock_killable(&inode->i_mutex); // if (res) // goto out; } else { res = down_write_killable(&inode->i_rwsem); if (res) goto out; } res = -ENOENT; if (!IS_DEADDIR(inode)) { Loading Loading
fs/btrfs/ioctl.c +7 −11 Original line number Diff line number Diff line Loading @@ -846,11 +846,9 @@ static noinline int btrfs_mksubvol(struct path *parent, struct dentry *dentry; int error; inode_lock_nested(dir, I_MUTEX_PARENT); // XXX: should've been // mutex_lock_killable_nested(&dir->i_mutex, I_MUTEX_PARENT); // if (error == -EINTR) // return error; error = down_write_killable_nested(&dir->i_rwsem, I_MUTEX_PARENT); if (error == -EINTR) return error; dentry = lookup_one_len(name, parent->dentry, namelen); error = PTR_ERR(dentry); Loading Loading @@ -2377,11 +2375,9 @@ static noinline int btrfs_ioctl_snap_destroy(struct file *file, goto out; inode_lock_nested(dir, I_MUTEX_PARENT); // XXX: should've been // err = mutex_lock_killable_nested(&dir->i_mutex, I_MUTEX_PARENT); // if (err == -EINTR) // goto out_drop_write; err = down_write_killable_nested(&dir->i_rwsem, I_MUTEX_PARENT); if (err == -EINTR) goto out_drop_write; dentry = lookup_one_len(vol_args->name, parent, namelen); if (IS_ERR(dentry)) { err = PTR_ERR(dentry); Loading Loading @@ -2571,7 +2567,7 @@ static noinline int btrfs_ioctl_snap_destroy(struct file *file, dput(dentry); out_unlock_dir: inode_unlock(dir); //out_drop_write: out_drop_write: mnt_drop_write_file(file); out: kfree(vol_args); Loading
fs/overlayfs/readdir.c +1 −3 Original line number Diff line number Diff line Loading @@ -218,9 +218,7 @@ static int ovl_check_whiteouts(struct dentry *dir, struct ovl_readdir_data *rdd) cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE); old_cred = override_creds(override_cred); inode_lock(dir->d_inode); err = 0; // XXX: err = mutex_lock_killable(&dir->d_inode->i_mutex); err = down_write_killable(&dir->d_inode->i_rwsem); if (!err) { while (rdd->first_maybe_whiteout) { p = rdd->first_maybe_whiteout; Loading
fs/readdir.c +6 −6 Original line number Diff line number Diff line Loading @@ -35,13 +35,13 @@ int iterate_dir(struct file *file, struct dir_context *ctx) if (res) goto out; if (shared) if (shared) { inode_lock_shared(inode); else inode_lock(inode); // res = mutex_lock_killable(&inode->i_mutex); // if (res) // goto out; } else { res = down_write_killable(&inode->i_rwsem); if (res) goto out; } res = -ENOENT; if (!IS_DEADDIR(inode)) { Loading