linux/drivers/xen/xenbus
Jan Beulich ee8b7ff00d xenbus: don't bail early from xenbus_dev_request_and_reply()
commit 7469be95a4 upstream.

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 027bd7e899 ("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>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2016-08-10 11:49:26 +02:00
..
Makefile xen: Add xenbus_backend device 2011-12-16 13:29:41 -05:00
xenbus_client.c xenbus: Support multiple grants ring with 64KB 2015-10-23 14:20:47 +01:00
xenbus_comms.c xen: Convert printks to pr_<level> 2013-06-28 11:19:58 -04:00
xenbus_comms.h xenbus: save xenstore local status for later use 2013-05-29 09:04:20 -04:00
xenbus_dev_backend.c xen: Use correctly the Xen memory terminologies 2015-09-08 18:03:49 +01:00
xenbus_dev_frontend.c xenbus: don't BUG() on user mode induced condition 2016-08-10 11:49:26 +02:00
xenbus_probe.c xen/xenbus: Use Xen page definition 2015-10-23 14:20:37 +01:00
xenbus_probe.h xen: remove DEFINE_XENBUS_DRIVER() macro 2014-10-06 10:27:57 +01:00
xenbus_probe_backend.c xen: remove DEFINE_XENBUS_DRIVER() macro 2014-10-06 10:27:57 +01:00
xenbus_probe_frontend.c xen: remove DEFINE_XENBUS_DRIVER() macro 2014-10-06 10:27:57 +01:00
xenbus_xs.c xenbus: don't bail early from xenbus_dev_request_and_reply() 2016-08-10 11:49:26 +02:00