[dm-devel] Re: [RFC PATCH 1/4] convert block layer drivers to blkerr error values

Mike Christie michaelc at cs.wisc.edu
Wed Aug 24 20:50:45 UTC 2005


James Bottomley wrote:
> On Wed, 2005-08-24 at 12:21 -0700, Patrick Mansfield wrote:
> 
>>On Wed, Aug 24, 2005 at 04:03:58AM -0500, Mike Christie wrote:
>>
>>
>>>-#define end_io_error(uptodate)	(unlikely((uptodate) <= 0))
>>>+enum {
>>>+	BLK_SUCCESS = 0,	/* Must be zero for compat with old usage */
>>>+	BLKERR_IO,		/* Generic I/O error */
>>>+	BLKERR_NOTSUPP,		/* Operation is not supported */
>>>+	BLKERR_WOULDBLOCK,	/* Operation would block */
>>>+	BLKERR_FATAL_DRV,	/* Fatal driver error */
>>>+	BLKERR_FATAL_DEV,	/* Fatal device error */
>>>+	BLKERR_FATAL_XPT,	/* Fatal transport error */
>>>+	BLKERR_RETRY_DRV,	/* Driver error, I/O may be retried */
>>>+	BLKERR_RETRY_DEV,	/* Device error, I/O may be retried */
>>>+	BLKERR_RETRY_XPT,	/* Transport error, I/O may retried */
>>>+};
> 
> 
> Actually, I'd really be happier if these were a bitmap rather than an
> enumeration.  That way we can divide them easily into cause (Driver,
> Device or Transport) and severity (fatal or retryable), so something
> like dm-multipath would only be interested in errors it made sense for a
> path to be failed over for (i.e. all transport and driver errors).
> 

Would it be good then to also extend the fail fast flag to a bit map so 
dm-multipath can tell scsi that scsi should handle device errors?




More information about the dm-devel mailing list