diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-23 15:24:56 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-23 15:24:56 -0500 |
commit | cc673757e24d018d64ff8038e28835db1e2902c4 (patch) | |
tree | 6eab3dab15725cda04dafabe9a8440697dca26cc /ipc | |
parent | fa7d9a1d286e6bab49ffa59cbd3c8b394ce54339 (diff) | |
parent | e62e560fc8b65ef5debc9041a792d18a8f98b2ca (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.c | 8 |
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); |
847 | out_putname: | 847 | out_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 | ||
886 | out_unlock: | 886 | out_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); |