]> git.baikalelectronics.ru Git - kernel.git/commit
xenbus: don't bail early from xenbus_dev_request_and_reply()
authorJan Beulich <JBeulich@suse.com>
Thu, 7 Jul 2016 07:32:04 +0000 (01:32 -0600)
committerDavid Vrabel <david.vrabel@citrix.com>
Fri, 8 Jul 2016 10:14:26 +0000 (11:14 +0100)
commit2b5ebf4d0a15286a60182035f6a192f5232af86e
tree65b84763bdd0b7b99a173755401fb9975f2210f1
parentd07bd508455b5f5f9fa63185de867fa91d3085c4
xenbus: don't bail early from xenbus_dev_request_and_reply()

xenbus_dev_request_and_reply() needs to track whether a transaction is
open.  For XS_TRANSACTION_START messages it calls transaction_start()
and for XS_TRANSACTION_END messages it calls transaction_end().

If sending an XS_TRANSACTION_START message fails or responds with an
an error, the transaction is not open and transaction_end() must be
called.

If sending an XS_TRANSACTION_END message fails, the transaction is
still open, but if an error response is returned the transaction is
closed.

Commit 65f8da5f7d5b ("xen/xenbus: Avoid synchronous wait on XenBus
stalling shutdown/restart") introduced a regression where failed
XS_TRANSACTION_START messages were leaving the transaction open.  This
can cause problems with suspend (and migration) as all transactions
must be closed before suspending.

It appears that the problematic change was added accidentally, so just
remove it.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
drivers/xen/xenbus/xenbus_xs.c