The patch titled mqueue: simplify do_open() error handling has been added to the -mm tree. Its filename is mqueue-simplify-do_open-error-handling.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: mqueue: simplify do_open() error handling From: André Goddard Rosa <andre.goddard@xxxxxxxxx> It reduces code size: text data bss dec hex filename 9925 72 16 10013 271d ipc/mqueue-BEFORE.o 9885 72 16 9973 26f5 ipc/mqueue-AFTER.o Signed-off-by: André Goddard Rosa <andre.goddard@xxxxxxxxx> Cc: Serge E. Hallyn <serue@xxxxxxxxxx> Cc: Cedric Le Goater <clg@xxxxxxxxxx> Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx> Cc: Alexey Dobriyan <adobriyan@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- ipc/mqueue.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff -puN ipc/mqueue.c~mqueue-simplify-do_open-error-handling ipc/mqueue.c --- a/ipc/mqueue.c~mqueue-simplify-do_open-error-handling +++ a/ipc/mqueue.c @@ -657,24 +657,28 @@ out: static struct file *do_open(struct ipc_namespace *ipc_ns, struct dentry *dentry, int oflag) { + int ret; const struct cred *cred = current_cred(); static const int oflag2acc[O_ACCMODE] = { MAY_READ, MAY_WRITE, MAY_READ | MAY_WRITE }; if ((oflag & O_ACCMODE) == (O_RDWR | O_WRONLY)) { - dput(dentry); - mntput(ipc_ns->mq_mnt); - return ERR_PTR(-EINVAL); + ret = -EINVAL; + goto err; } if (inode_permission(dentry->d_inode, oflag2acc[oflag & O_ACCMODE])) { - dput(dentry); - mntput(ipc_ns->mq_mnt); - return ERR_PTR(-EACCES); + ret = -EACCES; + goto err; } return dentry_open(dentry, ipc_ns->mq_mnt, oflag, cred); + +err: + dput(dentry); + mntput(ipc_ns->mq_mnt); + return ERR_PTR(ret); } SYSCALL_DEFINE4(mq_open, const char __user *, u_name, int, oflag, mode_t, mode, _ Patches currently in -mm which might be from andre.goddard@xxxxxxxxx are linux-next.patch mqueue-fix-mq_open-file-descriptor-leak-on-user-space-processes.patch mqueue-remove-unneeded-info-messages-initialization.patch mqueue-apply-mathematics-distributivity-on-mq_bytes-calculation.patch mqueue-simplify-do_open-error-handling.patch mqueue-only-set-error-codes-if-they-are-really-necessary.patch mqueue-fix-typo-failues-failures.patch lib-stringc-simplify-stricmp.patch lib-stringc-simplify-strnstr.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html