summaryrefslogtreecommitdiffstats
path: root/fs/signalfd.c
diff options
context:
space:
mode:
authorAl Viro2012-04-22 00:44:12 +0200
committerAl Viro2012-05-30 05:28:30 +0200
commit20ba5d736f5a42abbee3e14384ff2d0fdaef2e6d (patch)
tree7537c1a7c2efd3e145f52a43958c45581b0f4530 /fs/signalfd.c
parentswitch fcntl to fget_raw_light/fput_light (diff)
downloadkernel-qcow2-linux-20ba5d736f5a42abbee3e14384ff2d0fdaef2e6d.tar.gz
kernel-qcow2-linux-20ba5d736f5a42abbee3e14384ff2d0fdaef2e6d.tar.xz
kernel-qcow2-linux-20ba5d736f5a42abbee3e14384ff2d0fdaef2e6d.zip
switch signalfd4() to fget_light/fput_light
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/signalfd.c')
-rw-r--r--fs/signalfd.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/signalfd.c b/fs/signalfd.c
index 7ae2a574cb25..9f35a37173de 100644
--- a/fs/signalfd.c
+++ b/fs/signalfd.c
@@ -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;