]> xenbits.xensource.com Git - legacy/linux-2.6.18-xen.git/commitdiff
xenbus: fix xenbus_transaction_start() hang caused by double xenbus_transaction_end()
authorLaszlo Ersek <lersek@redhat.com>
Mon, 16 May 2011 12:26:45 +0000 (13:26 +0100)
committerLaszlo Ersek <lersek@redhat.com>
Mon, 16 May 2011 12:26:45 +0000 (13:26 +0100)
vbd_resize() up_read()'s xs_state.suspend_mutex twice in a row via
double xenbus_transaction_end() calls. The next down_read() in
xenbus_transaction_start() (at eg. the next resize attempt) hangs.

See RHBZ#618317.

Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Acked-by: Jan Beulich <jbeulich@novell.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
drivers/xen/blkback/vbd.c

index 802b786832bdb1483b96d75bafb8011611714f73..5677e86c5bfaf219af7940bc584c33ba61ce49a7 100644 (file)
@@ -156,6 +156,7 @@ again:
                goto again;
        if (err)
                printk(KERN_WARNING "Error ending transaction");
+       return;
 abort:
        xenbus_transaction_end(xbt, 1);
 }