aboutsummaryrefslogtreecommitdiffstats
path: root/ipc
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-01-23 15:24:56 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2016-01-23 15:24:56 -0500
commitcc673757e24d018d64ff8038e28835db1e2902c4 (patch)
tree6eab3dab15725cda04dafabe9a8440697dca26cc /ipc
parentfa7d9a1d286e6bab49ffa59cbd3c8b394ce54339 (diff)
parente62e560fc8b65ef5debc9041a792d18a8f98b2ca (diff)
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
Diffstat (limited to 'ipc')
-rw-r--r--ipc/mqueue.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/ipc/mqueue.c b/ipc/mqueue.c
index f4617cf07069..781c1399c6a3 100644
--- a/ipc/mqueue.c
+++ b/ipc/mqueue.c
@@ -795,7 +795,7 @@ SYSCALL_DEFINE4(mq_open, const char __user *, u_name, int, oflag, umode_t, mode,
795 795
796 ro = mnt_want_write(mnt); /* we'll drop it in any case */ 796 ro = mnt_want_write(mnt); /* we'll drop it in any case */
797 error = 0; 797 error = 0;
798 mutex_lock(&d_inode(root)->i_mutex); 798 inode_lock(d_inode(root));
799 path.dentry = lookup_one_len(name->name, root, strlen(name->name)); 799 path.dentry = lookup_one_len(name->name, root, strlen(name->name));
800 if (IS_ERR(path.dentry)) { 800 if (IS_ERR(path.dentry)) {
801 error = PTR_ERR(path.dentry); 801 error = PTR_ERR(path.dentry);
@@ -841,7 +841,7 @@ out_putfd:
841 put_unused_fd(fd); 841 put_unused_fd(fd);
842 fd = error; 842 fd = error;
843 } 843 }
844 mutex_unlock(&d_inode(root)->i_mutex); 844 inode_unlock(d_inode(root));
845 if (!ro) 845 if (!ro)
846 mnt_drop_write(mnt); 846 mnt_drop_write(mnt);
847out_putname: 847out_putname:
@@ -866,7 +866,7 @@ SYSCALL_DEFINE1(mq_unlink, const char __user *, u_name)
866 err = mnt_want_write(mnt); 866 err = mnt_want_write(mnt);
867 if (err) 867 if (err)
868 goto out_name; 868 goto out_name;
869 mutex_lock_nested(&d_inode(mnt->mnt_root)->i_mutex, I_MUTEX_PARENT); 869 inode_lock_nested(d_inode(mnt->mnt_root), I_MUTEX_PARENT);
870 dentry = lookup_one_len(name->name, mnt->mnt_root, 870 dentry = lookup_one_len(name->name, mnt->mnt_root,
871 strlen(name->name)); 871 strlen(name->name));
872 if (IS_ERR(dentry)) { 872 if (IS_ERR(dentry)) {
@@ -884,7 +884,7 @@ SYSCALL_DEFINE1(mq_unlink, const char __user *, u_name)
884 dput(dentry); 884 dput(dentry);
885 885
886out_unlock: 886out_unlock:
887 mutex_unlock(&d_inode(mnt->mnt_root)->i_mutex); 887 inode_unlock(d_inode(mnt->mnt_root));
888 if (inode) 888 if (inode)
889 iput(inode); 889 iput(inode);
890 mnt_drop_write(mnt); 890 mnt_drop_write(mnt);