Loading kernel/futex.c +9 −12 Original line number Diff line number Diff line Loading @@ -786,23 +786,17 @@ static int futex_fd(unsigned long uaddr, int signal) filp->f_mapping = filp->f_dentry->d_inode->i_mapping; if (signal) { int err; err = f_setown(filp, current->pid, 1); if (err < 0) { put_unused_fd(ret); put_filp(filp); ret = err; goto out; goto error; } filp->f_owner.signum = signal; } q = kmalloc(sizeof(*q), GFP_KERNEL); if (!q) { put_unused_fd(ret); put_filp(filp); ret = -ENOMEM; goto out; err = -ENOMEM; goto error; } down_read(¤t->mm->mmap_sem); Loading @@ -810,10 +804,8 @@ static int futex_fd(unsigned long uaddr, int signal) if (unlikely(err != 0)) { up_read(¤t->mm->mmap_sem); put_unused_fd(ret); put_filp(filp); kfree(q); return err; goto error; } /* Loading @@ -829,6 +821,11 @@ static int futex_fd(unsigned long uaddr, int signal) fd_install(ret, filp); out: return ret; error: put_unused_fd(ret); put_filp(filp); ret = err; goto out; } long do_futex(unsigned long uaddr, int op, int val, unsigned long timeout, Loading Loading
kernel/futex.c +9 −12 Original line number Diff line number Diff line Loading @@ -786,23 +786,17 @@ static int futex_fd(unsigned long uaddr, int signal) filp->f_mapping = filp->f_dentry->d_inode->i_mapping; if (signal) { int err; err = f_setown(filp, current->pid, 1); if (err < 0) { put_unused_fd(ret); put_filp(filp); ret = err; goto out; goto error; } filp->f_owner.signum = signal; } q = kmalloc(sizeof(*q), GFP_KERNEL); if (!q) { put_unused_fd(ret); put_filp(filp); ret = -ENOMEM; goto out; err = -ENOMEM; goto error; } down_read(¤t->mm->mmap_sem); Loading @@ -810,10 +804,8 @@ static int futex_fd(unsigned long uaddr, int signal) if (unlikely(err != 0)) { up_read(¤t->mm->mmap_sem); put_unused_fd(ret); put_filp(filp); kfree(q); return err; goto error; } /* Loading @@ -829,6 +821,11 @@ static int futex_fd(unsigned long uaddr, int signal) fd_install(ret, filp); out: return ret; error: put_unused_fd(ret); put_filp(filp); ret = err; goto out; } long do_futex(unsigned long uaddr, int op, int val, unsigned long timeout, Loading