Unverified Commit 14010faa authored by Christian Brauner's avatar Christian Brauner
Browse files
parent 5b755da1
Loading
Loading
Loading
Loading
+9 −20
Original line number Diff line number Diff line
@@ -393,9 +393,8 @@ static const struct file_operations timerfd_fops = {

SYSCALL_DEFINE2(timerfd_create, int, clockid, int, flags)
{
	int ufd;
	struct timerfd_ctx *ctx;
	struct file *file;
	struct timerfd_ctx *ctx __free(kfree) = NULL;
	int ret;

	/* Check the TFD_* constants for consistency.  */
	BUILD_BUG_ON(TFD_CLOEXEC != O_CLOEXEC);
@@ -432,23 +431,13 @@ SYSCALL_DEFINE2(timerfd_create, int, clockid, int, flags)

	ctx->moffs = ktime_mono_to_real(0);

	ufd = get_unused_fd_flags(flags & TFD_SHARED_FCNTL_FLAGS);
	if (ufd < 0) {
		kfree(ctx);
		return ufd;
	}

	file = anon_inode_getfile_fmode("[timerfd]", &timerfd_fops, ctx,
	ret = FD_ADD(flags & TFD_SHARED_FCNTL_FLAGS,
		     anon_inode_getfile_fmode("[timerfd]", &timerfd_fops, ctx,
					      O_RDWR | (flags & TFD_SHARED_FCNTL_FLAGS),
			    FMODE_NOWAIT);
	if (IS_ERR(file)) {
		put_unused_fd(ufd);
		kfree(ctx);
		return PTR_ERR(file);
	}

	fd_install(ufd, file);
	return ufd;
					      FMODE_NOWAIT));
	if (ret >= 0)
		retain_and_null_ptr(ctx);
	return ret;
}

static int do_timerfd_settime(int ufd, int flags,