[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 19:27:27 UTC 2005


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 */
>>+};
> 
> 
> Do you need to add and use a BLKERR_TIMEOUT? As we can't determine the
> problem area for a timeout, and if it can or should be retried.
> 

I was hoping we could figure this out. In the patches, if a command 
times out and eh kicks off I was just returning BLKERR_RETRY_DEV. This 
guessing occurs for a lot of errors becuase we do not know what exactly 
happened. the reason for the timeout could have been a device problem or 
transport problem. Some help in figuring this type of thing out is 
needed in other places.




More information about the dm-devel mailing list