Use __anon_inode_getfd instead of opencoding the logic using get_unused_fd_flags + anon_inode_getfile. Signed-off-by: Christoph Hellwig <hch@xxxxxx> --- fs/eventpoll.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 8c596641a72b0..8abdb9fff611a 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -2055,23 +2055,14 @@ static int do_epoll_create(int flags) * Creates all the items needed to setup an eventpoll file. That is, * a file structure and a free file descriptor. */ - fd = get_unused_fd_flags(O_RDWR | (flags & O_CLOEXEC)); - if (fd < 0) { - error = fd; + fd = __anon_inode_getfd("[eventpoll]", &eventpoll_fops, ep, + O_RDWR | (flags & O_CLOEXEC), &file); + if (fd < 0) goto out_free_ep; - } - file = anon_inode_getfile("[eventpoll]", &eventpoll_fops, ep, - O_RDWR | (flags & O_CLOEXEC)); - if (IS_ERR(file)) { - error = PTR_ERR(file); - goto out_free_fd; - } ep->file = file; fd_install(fd, file); return fd; -out_free_fd: - put_unused_fd(fd); out_free_ep: ep_free(ep); return error; -- 2.26.2