From: Christian Brauner Date: Sun, 23 Nov 2025 16:33:31 +0000 (+0100) Subject: open: convert do_sys_openat2() to FD_ADD() X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=360fbf808a9a0827f44c46b45391c494760737f1;p=thirdparty%2Flinux.git open: convert do_sys_openat2() to FD_ADD() Link: https://patch.msgid.link/20251123-work-fd-prepare-v4-13-b6efa1706cfd@kernel.org Signed-off-by: Christian Brauner --- diff --git a/fs/open.c b/fs/open.c index 3d64372ecc67..0ccd086323fd 100644 --- a/fs/open.c +++ b/fs/open.c @@ -1421,8 +1421,8 @@ static int do_sys_openat2(int dfd, const char __user *filename, struct open_how *how) { struct open_flags op; - struct filename *tmp; - int err, fd; + struct filename *tmp __free(putname) = NULL; + int err; err = build_open_flags(how, &op); if (unlikely(err)) @@ -1432,18 +1432,7 @@ static int do_sys_openat2(int dfd, const char __user *filename, if (IS_ERR(tmp)) return PTR_ERR(tmp); - fd = get_unused_fd_flags(how->flags); - if (likely(fd >= 0)) { - struct file *f = do_filp_open(dfd, tmp, &op); - if (IS_ERR(f)) { - put_unused_fd(fd); - fd = PTR_ERR(f); - } else { - fd_install(fd, f); - } - } - putname(tmp); - return fd; + return FD_ADD(how->flags, do_filp_open(dfd, tmp, &op)); } int do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)