gibbs 90080fdf07 Properly track the different reasons new I/O is temporarily disabled, and
only re-enable I/O when all reasons have cleared.

sys/dev/xen/blkfront/block.h:
	In the block front driver softc, replace the boolean
	XBDF_FROZEN flag with a count of commands and driver global
	issues that freeze the I/O queue.  So long xbd_qfrozen_cnt
	is non-zero, I/O is halted.

	Add flags to xbd_flags for tracking grant table entry and
	free command resource shortages.  Each of these classes can
	increment xbd_qfrozen_cnt at most once.

	Add a command flag (XBDCF_ASYNC_MAPPING) that is set whenever
	the initial mapping attempt of a command fails with EINPROGRESS.

sys/dev/xen/blkfront/blkfront.c:
	In xbd_queue_cb(), use new XBDCF_ASYNC_MAPPING flag to definitively
	know if an async bus dmamap load has occurred.

	Add xbd_freeze() and xbd_thaw() helper methods for managing
	xbd_qfrozen_cnt and use them to implement all queue freezing logic.

	Add missing "thaw" to restart I/O processing once grant references
	become available.

Sponsored by:	Spectra Logic Corporation
2013-06-15 04:51:31 +00:00
..
2013-05-20 23:52:49 +00:00
2013-05-10 16:41:26 +00:00
2013-04-30 18:29:05 +00:00
2013-04-14 09:55:48 +00:00
2013-05-12 16:43:26 +00:00
2013-05-13 20:03:59 +00:00
2013-05-10 16:41:26 +00:00
MFC
2013-02-26 21:09:35 +00:00
2013-05-10 16:41:26 +00:00
2013-05-10 16:41:26 +00:00
2013-06-02 18:10:16 +00:00
2013-02-19 18:22:25 +00:00
2013-04-23 18:30:33 +00:00
2013-04-14 09:55:48 +00:00
2012-11-23 19:20:38 +00:00
2013-04-14 09:55:48 +00:00
2013-05-10 16:41:26 +00:00
2013-04-28 20:55:45 +00:00
2013-03-01 01:42:31 +00:00
2013-05-10 16:41:26 +00:00
2013-05-02 01:36:52 +00:00
2013-02-19 19:25:50 +00:00
2013-04-14 09:55:48 +00:00
2013-06-04 22:32:33 +00:00
2013-05-10 16:41:26 +00:00
MFC
2013-03-09 01:39:42 +00:00
2013-02-21 12:40:52 +00:00
2013-05-10 16:41:26 +00:00
2013-05-10 16:41:26 +00:00
2013-05-10 16:41:26 +00:00
2012-10-10 08:36:38 +00:00
2012-10-10 08:36:38 +00:00
2013-04-14 09:55:48 +00:00
2012-10-10 08:36:38 +00:00