futex: cleanup error exit
authorThomas Gleixner <tglx@linutronix.de>
Wed, 20 May 2009 07:18:50 +0000 (09:18 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 20 May 2009 08:28:45 +0000 (10:28 +0200)
Reuse the put_key_ref(key2) call in the exit path.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
kernel/futex.c

index 476603a..381125a 100644 (file)
@@ -2185,10 +2185,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, int fshared,
 
        /* Prepare to wait on uaddr. */
        ret = futex_wait_setup(uaddr, val, fshared, &q, &hb);
-       if (ret) {
-               put_futex_key(fshared, &key2);
-               goto out;
-       }
+       if (ret)
+               goto out_key2;
 
        /* Queue the futex_q, drop the hb lock, wait for wakeup. */
        futex_wait_queue_me(hb, &q, to);
@@ -2282,6 +2280,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, int fshared,
 
 out_put_keys:
        put_futex_key(fshared, &q.key);
+out_key2:
        put_futex_key(fshared, &key2);
 
 out: