Skip to content

Commit abb0434

Browse files
author
Al Viro
committed
mqueue: switch to CLASS(filename)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
1 parent a0c3d1f commit abb0434

1 file changed

Lines changed: 3 additions & 8 deletions

File tree

ipc/mqueue.c

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -912,13 +912,12 @@ static struct file *mqueue_file_open(struct filename *name,
912912
static int do_mq_open(const char __user *u_name, int oflag, umode_t mode,
913913
struct mq_attr *attr)
914914
{
915-
struct filename *name __free(putname) = NULL;;
916915
struct vfsmount *mnt = current->nsproxy->ipc_ns->mq_mnt;
917916
int fd, ro;
918917

919918
audit_mq_open(oflag, mode, attr);
920919

921-
name = getname(u_name);
920+
CLASS(filename, name)(u_name);
922921
if (IS_ERR(name))
923922
return PTR_ERR(name);
924923

@@ -942,20 +941,19 @@ SYSCALL_DEFINE4(mq_open, const char __user *, u_name, int, oflag, umode_t, mode,
942941
SYSCALL_DEFINE1(mq_unlink, const char __user *, u_name)
943942
{
944943
int err;
945-
struct filename *name;
946944
struct dentry *dentry;
947945
struct inode *inode;
948946
struct ipc_namespace *ipc_ns = current->nsproxy->ipc_ns;
949947
struct vfsmount *mnt = ipc_ns->mq_mnt;
948+
CLASS(filename, name)(u_name);
950949

951-
name = getname(u_name);
952950
if (IS_ERR(name))
953951
return PTR_ERR(name);
954952

955953
audit_inode_parent_hidden(name, mnt->mnt_root);
956954
err = mnt_want_write(mnt);
957955
if (err)
958-
goto out_name;
956+
return err;
959957
dentry = start_removing_noperm(mnt->mnt_root, &QSTR(name->name));
960958
if (IS_ERR(dentry)) {
961959
err = PTR_ERR(dentry);
@@ -971,9 +969,6 @@ SYSCALL_DEFINE1(mq_unlink, const char __user *, u_name)
971969

972970
out_drop_write:
973971
mnt_drop_write(mnt);
974-
out_name:
975-
putname(name);
976-
977972
return err;
978973
}
979974

0 commit comments

Comments
 (0)