Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 20ba5d73 authored by Al Viro's avatar Al Viro
Browse files

switch signalfd4() to fget_light/fput_light



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 545ec2c7
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -269,12 +269,13 @@ SYSCALL_DEFINE4(signalfd4, int, ufd, sigset_t __user *, user_mask,
		if (ufd < 0)
			kfree(ctx);
	} else {
		struct file *file = fget(ufd);
		int fput_needed;
		struct file *file = fget_light(ufd, &fput_needed);
		if (!file)
			return -EBADF;
		ctx = file->private_data;
		if (file->f_op != &signalfd_fops) {
			fput(file);
			fput_light(file, fput_needed);
			return -EINVAL;
		}
		spin_lock_irq(&current->sighand->siglock);
@@ -282,7 +283,7 @@ SYSCALL_DEFINE4(signalfd4, int, ufd, sigset_t __user *, user_mask,
		spin_unlock_irq(&current->sighand->siglock);

		wake_up(&current->sighand->signalfd_wqh);
		fput(file);
		fput_light(file, fput_needed);
	}

	return ufd;