diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2017-12-02 02:01:09 +0300 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2018-01-05 19:54:36 +0300 |
commit | a713fd7f529e361d42aa9dcc511e3fd3016599fe (patch) | |
tree | 4b6d1775e6551f31841b6aa7df7ad48771bf31ec /ipc/mqueue.c | |
parent | 9b20d7fc5250f50660c4dd4bea52e54e373b678d (diff) | |
download | linux-a713fd7f529e361d42aa9dcc511e3fd3016599fe.tar.xz |
tidy do_mq_open() up a bit
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'ipc/mqueue.c')
-rw-r--r-- | ipc/mqueue.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/ipc/mqueue.c b/ipc/mqueue.c index ce498ff906bb..9f05837a86a6 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c @@ -743,12 +743,11 @@ static int prepare_open(struct dentry *dentry, int oflag, int ro, static int do_mq_open(const char __user *u_name, int oflag, umode_t mode, struct mq_attr *attr) { - struct path path; + struct vfsmount *mnt = current->nsproxy->ipc_ns->mq_mnt; + struct dentry *root = mnt->mnt_root; struct filename *name; + struct path path; int fd, error; - struct ipc_namespace *ipc_ns = current->nsproxy->ipc_ns; - struct vfsmount *mnt = ipc_ns->mq_mnt; - struct dentry *root = mnt->mnt_root; int ro; audit_mq_open(oflag, mode, attr); @@ -761,7 +760,6 @@ static int do_mq_open(const char __user *u_name, int oflag, umode_t mode, goto out_putname; ro = mnt_want_write(mnt); /* we'll drop it in any case */ - error = 0; inode_lock(d_inode(root)); path.dentry = lookup_one_len(name->name, root, strlen(name->name)); if (IS_ERR(path.dentry)) { @@ -769,7 +767,6 @@ static int do_mq_open(const char __user *u_name, int oflag, umode_t mode, goto out_putfd; } path.mnt = mntget(mnt); - error = prepare_open(path.dentry, oflag, ro, mode, name, attr); if (!error) { struct file *file = dentry_open(&path, oflag, current_cred()); |