summaryrefslogtreecommitdiff
path: root/kernel/futex.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/futex.c')
-rw-r--r--kernel/futex.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/kernel/futex.c b/kernel/futex.c
index ef3dc8b00a5f..ac9fda58181e 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -276,9 +276,14 @@ static int futex_fd(struct list_head *head,
filp->f_dentry = dget(futex_mnt->mnt_root);
if (signal) {
- filp->f_owner.pid = current->tgid;
- filp->f_owner.uid = current->uid;
- filp->f_owner.euid = current->euid;
+ int ret;
+
+ ret = f_setown(filp, current->tgid, 1);
+ if (ret) {
+ put_unused_fd(fd);
+ put_filp(filp);
+ return ret;
+ }
filp->f_owner.signum = signal;
}