relay: fix lock imbalance in relay_late_setup_files
authorJiri Slaby <jirislaby@gmail.com>
Sat, 17 Jan 2009 11:04:36 +0000 (12:04 +0100)
committerIngo Molnar <mingo@elte.hu>
Sun, 18 Jan 2009 19:29:35 +0000 (20:29 +0100)
One fail path in relay_late_setup_files() omits
mutex_unlock(&relay_channels_mutex);
Add it.

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/relay.c

index 09ac2008f77b419a5c169e41f3ddcbab6aa90746..9d79b7854fa6f98ee3595615798188ccf2f482fc 100644 (file)
@@ -663,8 +663,10 @@ int relay_late_setup_files(struct rchan *chan,
 
        mutex_lock(&relay_channels_mutex);
        /* Is chan already set up? */
-       if (unlikely(chan->has_base_filename))
+       if (unlikely(chan->has_base_filename)) {
+               mutex_unlock(&relay_channels_mutex);
                return -EEXIST;
+       }
        chan->has_base_filename = 1;
        chan->parent = parent;
        curr_cpu = get_cpu();