From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laszlo Ersek Subject: [PATCH linux-2.6.18-xen] fix xenbus_transaction_start() hang caused by double xenbus_transaction_end() Date: Thu, 12 May 2011 12:24:17 +0200 Message-ID: <4DCBB551.7000002@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "xen-devel@lists.xensource.com" Cc: Ky Srinivasan List-Id: xen-devel@lists.xenproject.org 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. Thanks for considering. Signed-off-by: Laszlo Ersek --- drivers/xen/blkback/vbd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/xen/blkback/vbd.c b/drivers/xen/blkback/vbd.c --- a/drivers/xen/blkback/vbd.c +++ b/drivers/xen/blkback/vbd.c @@ -156,6 +156,7 @@ goto again; if (err) printk(KERN_WARNING "Error ending transaction"); + return; abort: xenbus_transaction_end(xbt, 1); }