From: Jonathan McDowell <noodles@earth.li>
To: Mike Snitzer <snitzer@redhat.com>
Cc: James Bottomley <James.Bottomley@suse.de>,
linux-scsi@vger.kernel.org, agk@redhat.com, jaxboe@fusionio.com,
Hannes Reinecke <hare@suse.de>,
michaelc@cs.wisc.edu
Subject: Re: [PATCH v3 1/3] scsi: Detailed I/O errors
Date: Fri, 14 Jan 2011 08:10:48 -0800 [thread overview]
Message-ID: <20110114161048.GK5727@earth.li> (raw)
In-Reply-To: <1295020736-27699-2-git-send-email-snitzer@redhat.com>
On Fri, Jan 14, 2011 at 10:58:54AM -0500, Mike Snitzer wrote:
> From: Hannes Reinecke <hare@suse.de>
>
> Instead of just passing 'EIO' for any I/O error we should be
> notifying the upper layers with more details about the cause
> of this error.
>
> Update the possible I/O errors to:
>
> - ENOLINK: Link failure between host and target
> - EIO: Retryable I/O error
> - EREMOTEIO: Non-retryable I/O error
>
> 'Retryable' in this context means that an I/O error _might_ be
> restricted to the I_T_L nexus (vulgo: path), so retrying on another
> nexus / path might succeed.
...
> @@ -1486,6 +1495,7 @@ int scsi_decide_disposition(struct scsi_cmnd *scmd)
> case RESERVATION_CONFLICT:
> sdev_printk(KERN_INFO, scmd->device,
> "reservation conflict\n");
> + scmd->result |= (DID_TARGET_FAILURE << 16);
> return SUCCESS; /* causes immediate i/o error */
> default:
> return FAILED;
...
> +#define DID_TARGET_FAILURE 0x10 /* Permanent target failure, do not retry on
> + * other paths */
I'd have viewed a reservation conflict as being tied to a particular
path, rather than the entire target. I've seen multipath setups where
there are reservation issues on some of the paths but others are fine
and this is expected (eg use of reservations to fence off particular
paths).
J.
--
/-\ | It's more than good enough so I
|@/ Debian GNU/Linux Developer | ain't switch'n.
\- |
next prev parent reply other threads:[~2011-01-14 16:41 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-14 15:58 [PATCH v3 0/3] differentiate between I/O errors Mike Snitzer
2011-01-14 15:58 ` [PATCH v3 1/3] scsi: Detailed " Mike Snitzer
2011-01-14 16:10 ` Jonathan McDowell [this message]
2011-01-14 17:16 ` Mike Snitzer
2011-01-17 15:52 ` Hannes Reinecke
2011-01-17 18:20 ` Mike Snitzer
2011-01-14 15:58 ` [PATCH v3 2/3] dm mpath: propagate target errors immediately Mike Snitzer
2011-01-14 15:58 ` [PATCH v3 3/3] block: improve detail in I/O error messages Mike Snitzer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110114161048.GK5727@earth.li \
--to=noodles@earth.li \
--cc=James.Bottomley@suse.de \
--cc=agk@redhat.com \
--cc=hare@suse.de \
--cc=jaxboe@fusionio.com \
--cc=linux-scsi@vger.kernel.org \
--cc=michaelc@cs.wisc.edu \
--cc=snitzer@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox