Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull final vfs updates from Al Viro: - The ->i_mutex wrappers (with small prereq in lustre) - a fix for too early freeing of symlink bodies on shmem (they need to be RCU-delayed) (-stable fodder) - followup to dedupe stuff merged this cycle * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: vfs: abort dedupe loop if fatal signals are pending make sure that freeing shmem fast symlinks is RCU-delayed wrappers for ->i_mutex access lustre: remove unused declaration
This commit is contained in:
@@ -795,7 +795,7 @@ SYSCALL_DEFINE4(mq_open, const char __user *, u_name, int, oflag, umode_t, mode,
|
||||
|
||||
ro = mnt_want_write(mnt); /* we'll drop it in any case */
|
||||
error = 0;
|
||||
mutex_lock(&d_inode(root)->i_mutex);
|
||||
inode_lock(d_inode(root));
|
||||
path.dentry = lookup_one_len(name->name, root, strlen(name->name));
|
||||
if (IS_ERR(path.dentry)) {
|
||||
error = PTR_ERR(path.dentry);
|
||||
@@ -841,7 +841,7 @@ out_putfd:
|
||||
put_unused_fd(fd);
|
||||
fd = error;
|
||||
}
|
||||
mutex_unlock(&d_inode(root)->i_mutex);
|
||||
inode_unlock(d_inode(root));
|
||||
if (!ro)
|
||||
mnt_drop_write(mnt);
|
||||
out_putname:
|
||||
@@ -866,7 +866,7 @@ SYSCALL_DEFINE1(mq_unlink, const char __user *, u_name)
|
||||
err = mnt_want_write(mnt);
|
||||
if (err)
|
||||
goto out_name;
|
||||
mutex_lock_nested(&d_inode(mnt->mnt_root)->i_mutex, I_MUTEX_PARENT);
|
||||
inode_lock_nested(d_inode(mnt->mnt_root), I_MUTEX_PARENT);
|
||||
dentry = lookup_one_len(name->name, mnt->mnt_root,
|
||||
strlen(name->name));
|
||||
if (IS_ERR(dentry)) {
|
||||
@@ -884,7 +884,7 @@ SYSCALL_DEFINE1(mq_unlink, const char __user *, u_name)
|
||||
dput(dentry);
|
||||
|
||||
out_unlock:
|
||||
mutex_unlock(&d_inode(mnt->mnt_root)->i_mutex);
|
||||
inode_unlock(d_inode(mnt->mnt_root));
|
||||
if (inode)
|
||||
iput(inode);
|
||||
mnt_drop_write(mnt);
|
||||
|
||||
Reference in New Issue
Block a user