Skip to content

Commit

Permalink
xen/blkback: fix xenbus_transaction_start() hang caused by double xen…
Browse files Browse the repository at this point in the history
…bus_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>
  • Loading branch information
Laszlo Ersek authored and Konrad Rzeszutek Wilk committed May 13, 2011
1 parent 5185432 commit 496b318
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions drivers/block/xen-blkback/blkback.c
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,7 @@ static void xen_vbd_resize(struct xen_blkif *blkif)
goto again;
if (err)
pr_warn(DRV_PFX "Error ending transaction");
return;
abort:
xenbus_transaction_end(xbt, 1);
}
Expand Down

0 comments on commit 496b318

Please sign in to comment.