Browse Source

xen/blkback: 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.

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=618317

Acked-by: Jan Beulich <jbeulich@novell.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Laszlo Ersek 14 years ago
parent
commit
496b318eb6
1 changed files with 1 additions and 0 deletions
  1. 1 0
      drivers/block/xen-blkback/blkback.c

+ 1 - 0
drivers/block/xen-blkback/blkback.c

@@ -226,6 +226,7 @@ again:
 		goto again;
 	if (err)
 		pr_warn(DRV_PFX "Error ending transaction");
+	return;
 abort:
 	xenbus_transaction_end(xbt, 1);
 }