[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [linux-2.6.18-xen] xenbus: fix xenbus_transaction_start() hang caused by double xenbus_transaction_end()



# HG changeset patch
# User Laszlo Ersek <lersek@xxxxxxxxxx>
# Date 1305548805 -3600
# Node ID aa2a7493b2027936d4b6224a324f8a7ae65a8e95
# Parent  c896d26c6b7c70bc82e353e7d02579fdd26af2f6
xenbus: fix xenbus_transaction_start() hang caused by double 
xenbus_transaction_end()

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@xxxxxxxxxx>
Acked-by: Jan Beulich <jbeulich@xxxxxxxxxx>
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---


diff -r c896d26c6b7c -r aa2a7493b202 drivers/xen/blkback/vbd.c
--- a/drivers/xen/blkback/vbd.c Mon May 09 10:02:19 2011 +0100
+++ b/drivers/xen/blkback/vbd.c Mon May 16 13:26:45 2011 +0100
@@ -156,6 +156,7 @@
                goto again;
        if (err)
                printk(KERN_WARNING "Error ending transaction");
+       return;
 abort:
        xenbus_transaction_end(xbt, 1);
 }

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.