This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-changelog] [linux-2.6.18-xen] xenbus: fix xenbus_transaction_start(

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [linux-2.6.18-xen] xenbus: fix xenbus_transaction_start() hang caused by double xenbus_transaction_end()
From: Xen patchbot-linux-2.6.18-xen <patchbot@xxxxxxx>
Date: Mon, 16 May 2011 13:35:05 +0100
Delivery-date: Mon, 16 May 2011 05:36:50 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# 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 

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;
        xenbus_transaction_end(xbt, 1);

Xen-changelog mailing list

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [linux-2.6.18-xen] xenbus: fix xenbus_transaction_start() hang caused by double xenbus_transaction_end(), Xen patchbot-linux-2 . 6 . 18-xen <=