From: Mike Snitzer <snitzer@redhat.com> To: Hannes Reinecke <hare@suse.de> Cc: k-ueda@ct.jp.nec.com, michaelc@cs.wisc.edu, tytso@mit.edu, sshtylyov@mvista.com, linux-scsi@vger.kernel.org, jaxboe@fusionio.com, vst@vlnb.net, linux-kernel@vger.kernel.org, hch@lst.de, linux-raid@vger.kernel.org, linux-ide@vger.kernel.org, dm-devel@redhat.com, James.Bottomley@suse.de, konishi.ryusuke@lab.ntt.co.jp, linux-fsdevel@vger.kernel.org, jack@suse.cz, j-nomura@ce.jp.nec.com, rwheeler@redhat.com, swhiteho@redhat.com, chris.mason@oracle.com, tj@kernel.org Subject: [RFC PATCH v2 2/3] dm mpath: propagate target errors immediately Date: Tue, 7 Dec 2010 18:16:41 -0500 [thread overview] Message-ID: <1291763802-8251-3-git-send-email-snitzer@redhat.com> (raw) In-Reply-To: <1291763802-8251-1-git-send-email-snitzer@redhat.com> DM now has more information about the nature of the underlying storage failure. Path failure is avoided if a request failed due to a target error. Instead the target error is immediately passed up the stack. Discard requests that fail due to non-target errors may now be retried. Signed-off-by: Mike Snitzer <snitzer@redhat.com> --- drivers/md/dm-mpath.c | 11 +---------- 1 files changed, 1 insertions(+), 10 deletions(-) diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c index 487ecda..071529a 100644 --- a/drivers/md/dm-mpath.c +++ b/drivers/md/dm-mpath.c @@ -1270,16 +1270,7 @@ static int do_end_io(struct multipath *m, struct request *clone, if (!error && !clone->errors) return 0; /* I/O complete */ - if (error == -EOPNOTSUPP) - return error; - - if (clone->cmd_flags & REQ_DISCARD) - /* - * Pass all discard request failures up. - * FIXME: only fail_path if the discard failed due to a - * transport problem. This requires precise understanding - * of the underlying failure (e.g. the SCSI sense). - */ + if (error == -EOPNOTSUPP || error == -EREMOTEIO) return error; if (mpio->pgpath) -- 1.7.2.3
WARNING: multiple messages have this Message-ID (diff)
From: Mike Snitzer <snitzer@redhat.com> To: Hannes Reinecke <hare@suse.de> Cc: k-ueda@ct.jp.nec.com, michaelc@cs.wisc.edu, tytso@mit.edu, sshtylyov@mvista.com, linux-scsi@vger.kernel.org, jaxboe@fusionio.com, jack@suse.cz, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, swhiteho@redhat.com, linux-raid@vger.kernel.org, linux-ide@vger.kernel.org, dm-devel@redhat.com, James.Bottomley@suse.de, konishi.ryusuke@lab.ntt.co.jp, j-nomura@ce.jp.nec.com, vst@vlnb.net, rwheeler@redhat.com, hch@lst.de, chris.mason@oracle.com, tj@kernel.org Subject: [RFC PATCH v2 2/3] dm mpath: propagate target errors immediately Date: Tue, 7 Dec 2010 18:16:41 -0500 [thread overview] Message-ID: <1291763802-8251-3-git-send-email-snitzer@redhat.com> (raw) In-Reply-To: <1291763802-8251-1-git-send-email-snitzer@redhat.com> DM now has more information about the nature of the underlying storage failure. Path failure is avoided if a request failed due to a target error. Instead the target error is immediately passed up the stack. Discard requests that fail due to non-target errors may now be retried. Signed-off-by: Mike Snitzer <snitzer@redhat.com> --- drivers/md/dm-mpath.c | 11 +---------- 1 files changed, 1 insertions(+), 10 deletions(-) diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c index 487ecda..071529a 100644 --- a/drivers/md/dm-mpath.c +++ b/drivers/md/dm-mpath.c @@ -1270,16 +1270,7 @@ static int do_end_io(struct multipath *m, struct request *clone, if (!error && !clone->errors) return 0; /* I/O complete */ - if (error == -EOPNOTSUPP) - return error; - - if (clone->cmd_flags & REQ_DISCARD) - /* - * Pass all discard request failures up. - * FIXME: only fail_path if the discard failed due to a - * transport problem. This requires precise understanding - * of the underlying failure (e.g. the SCSI sense). - */ + if (error == -EOPNOTSUPP || error == -EREMOTEIO) return error; if (mpio->pgpath) -- 1.7.2.3
next prev parent reply other threads:[~2010-12-07 23:16 UTC|newest] Thread overview: 155+ messages / expand[flat|nested] mbox.gz Atom feed top 2010-08-12 12:41 [PATCHSET block#for-2.6.36-post] block: replace barrier with sequenced flush Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-12 12:41 ` [PATCH 01/11] block/loop: queue ordered mode should be DRAIN_FLUSH Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-12 12:41 ` [PATCH 02/11] block: kill QUEUE_ORDERED_BY_TAG Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-13 12:56 ` Vladislav Bolkhovitin 2010-08-13 13:06 ` Christoph Hellwig 2010-08-12 12:41 ` [PATCH 03/11] block: deprecate barrier and replace blk_queue_ordered() with blk_queue_flush() Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-14 1:07 ` Jeremy Fitzhardinge 2010-08-14 1:07 ` Jeremy Fitzhardinge 2010-08-14 9:42 ` hch 2010-08-16 20:38 ` Jeremy Fitzhardinge 2010-08-12 12:41 ` [PATCH 04/11] block: remove spurious uses of REQ_HARDBARRIER Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-12 12:41 ` [PATCH 05/11] block: misc cleanups in barrier code Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-12 12:41 ` [PATCH 06/11] block: drop barrier ordering by queue draining Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-12 12:41 ` [PATCH 07/11] block: rename blk-barrier.c to blk-flush.c Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-12 12:41 ` [PATCH 08/11] block: rename barrier/ordered to flush Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-17 13:26 ` Christoph Hellwig 2010-08-17 16:23 ` Tejun Heo 2010-08-17 17:08 ` Christoph Hellwig 2010-08-18 6:23 ` Tejun Heo 2010-08-12 12:41 ` [PATCH 09/11] block: implement REQ_FLUSH/FUA based interface for FLUSH/FUA requests Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-12 12:41 ` [PATCH 10/11] fs, block: propagate REQ_FLUSH/FUA interface to upper layers Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-12 21:24 ` Jan Kara 2010-08-13 7:19 ` Tejun Heo 2010-08-13 7:47 ` Christoph Hellwig 2010-08-16 16:33 ` [PATCH UPDATED " Tejun Heo 2010-08-12 12:41 ` [PATCH " Tejun Heo 2010-08-12 12:41 ` [PATCH 11/11] block: use REQ_FLUSH in blkdev_issue_flush() Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-12 12:41 ` Tejun Heo 2010-08-13 11:48 ` [PATCHSET block#for-2.6.36-post] block: replace barrier with sequenced flush Christoph Hellwig 2010-08-13 13:48 ` Tejun Heo 2010-08-13 14:38 ` Christoph Hellwig 2010-08-13 14:51 ` Tejun Heo 2010-08-14 10:36 ` Christoph Hellwig 2010-08-17 9:59 ` Tejun Heo 2010-08-17 13:19 ` Christoph Hellwig 2010-08-17 16:41 ` Tejun Heo 2010-08-17 16:59 ` Christoph Hellwig 2010-08-18 6:35 ` Tejun Heo 2010-08-18 8:11 ` Tejun Heo 2010-08-20 8:26 ` Kiyoshi Ueda 2010-08-23 12:14 ` Tejun Heo 2010-08-23 14:17 ` Mike Snitzer 2010-08-24 10:24 ` Kiyoshi Ueda 2010-08-24 16:59 ` Tejun Heo 2010-08-24 17:52 ` Mike Snitzer 2010-08-24 18:14 ` Tejun Heo 2010-08-25 8:00 ` Kiyoshi Ueda 2010-08-25 15:28 ` Mike Snitzer 2010-08-27 9:47 ` Kiyoshi Ueda 2010-08-27 9:47 ` Kiyoshi Ueda 2010-08-27 13:49 ` Mike Snitzer 2010-08-30 6:13 ` Kiyoshi Ueda 2010-09-01 0:55 ` safety of retrying SYNCHRONIZE CACHE [was: Re: [PATCHSET block#for-2.6.36-post] block: replace barrier with sequenced flush] Mike Snitzer 2010-09-01 7:32 ` Hannes Reinecke 2010-09-01 7:32 ` Hannes Reinecke 2010-09-01 7:38 ` Hannes Reinecke 2010-09-01 7:38 ` Hannes Reinecke 2010-12-08 21:14 ` [PATCH] scsi: improve description for deferred error Mike Snitzer 2010-12-28 21:45 ` Brett Russ 2010-08-25 15:59 ` [RFC] training mpath to discern between SCSI errors (was: Re: [PATCHSET block#for-2.6.36-post] block: replace barrier with sequenced flush) Mike Snitzer 2010-08-25 19:15 ` [RFC] training mpath to discern between SCSI errors Mike Christie 2010-08-30 11:38 ` Hannes Reinecke 2010-08-30 12:07 ` Sergei Shtylyov 2010-08-30 12:39 ` Hannes Reinecke 2010-08-30 12:51 ` Christophe Varoqui 2010-08-30 13:10 ` Hannes Reinecke 2010-08-30 14:52 ` [dm-devel] " Hannes Reinecke 2010-08-30 14:52 ` Hannes Reinecke 2010-10-18 8:09 ` Jun'ichi Nomura 2010-10-18 11:55 ` Hannes Reinecke 2010-10-19 4:03 ` Jun'ichi Nomura 2010-11-19 3:11 ` [dm-devel] " Malahal Naineni 2010-11-30 22:59 ` Mike Snitzer 2010-12-07 23:16 ` [RFC PATCH 0/3] differentiate between I/O errors Mike Snitzer 2010-12-07 23:16 ` [RFC PATCH v2 1/3] scsi: Detailed " Mike Snitzer 2010-12-07 23:16 ` Mike Snitzer [this message] 2010-12-07 23:16 ` [RFC PATCH v2 2/3] dm mpath: propagate target errors immediately Mike Snitzer 2010-12-07 23:16 ` [RFC PATCH 3/3] block: improve detail in I/O error messages Mike Snitzer 2010-12-08 11:28 ` Sergei Shtylyov 2010-12-08 15:05 ` [PATCH v2 " Mike Snitzer 2010-12-10 23:40 ` [RFC PATCH 0/3] differentiate between I/O errors Malahal Naineni 2011-01-14 1:15 ` Mike Snitzer 2011-01-14 1:15 ` Mike Snitzer 2011-01-14 1:15 ` Mike Snitzer 2011-01-14 1:15 ` Mike Snitzer 2011-01-14 1:15 ` Mike Snitzer 2010-12-17 9:47 ` training mpath to discern between SCSI errors Hannes Reinecke 2010-12-17 14:06 ` Mike Snitzer 2010-12-17 14:06 ` Mike Snitzer 2011-01-14 1:09 ` Mike Snitzer 2011-01-14 7:45 ` Hannes Reinecke 2011-01-14 13:59 ` Mike Snitzer 2010-08-24 17:11 ` [PATCHSET block#for-2.6.36-post] block: replace barrier with sequenced flush Vladislav Bolkhovitin 2010-08-24 23:14 ` Alan Cox 2010-08-24 23:14 ` Alan Cox 2010-08-13 12:55 ` Vladislav Bolkhovitin 2010-08-13 13:17 ` Christoph Hellwig 2010-08-18 19:29 ` Vladislav Bolkhovitin 2010-08-13 13:21 ` Tejun Heo 2010-08-18 19:30 ` Vladislav Bolkhovitin 2010-08-19 9:51 ` Tejun Heo 2010-08-30 9:54 ` Hannes Reinecke 2010-08-30 20:34 ` Vladislav Bolkhovitin 2010-08-18 9:46 ` Christoph Hellwig 2010-08-19 9:57 ` Tejun Heo 2010-08-19 10:20 ` Christoph Hellwig 2010-08-19 10:22 ` Tejun Heo 2010-08-20 13:22 ` Christoph Hellwig 2010-08-20 15:18 ` Ric Wheeler 2010-08-20 16:00 ` Chris Mason 2010-08-20 16:02 ` Ric Wheeler 2010-08-20 16:02 ` Ric Wheeler 2010-08-20 16:02 ` Ric Wheeler 2010-08-20 16:02 ` Ric Wheeler 2010-08-20 16:02 ` Ric Wheeler 2010-08-20 16:02 ` Ric Wheeler 2010-08-23 12:30 ` Tejun Heo 2010-08-23 12:48 ` Christoph Hellwig 2010-08-23 13:58 ` Ric Wheeler 2010-08-23 14:01 ` Jens Axboe 2010-08-23 14:08 ` Christoph Hellwig 2010-08-23 14:13 ` Tejun Heo 2010-08-23 14:19 ` Christoph Hellwig 2010-08-25 11:31 ` Jens Axboe 2010-08-30 10:04 ` Hannes Reinecke 2010-08-23 15:19 ` Ric Wheeler 2010-08-23 16:45 ` Sergey Vlasov 2010-08-23 16:45 ` [dm-devel] " Sergey Vlasov 2010-08-23 16:49 ` Ric Wheeler 2010-08-23 16:49 ` Ric Wheeler 2010-08-23 16:49 ` Ric Wheeler 2010-08-23 16:49 ` Ric Wheeler 2010-08-23 16:49 ` Ric Wheeler 2010-08-23 12:36 ` Tejun Heo 2010-08-23 14:05 ` Christoph Hellwig 2010-08-23 14:15 ` [PATCH] block: simplify queue_next_fseq Christoph Hellwig 2010-08-23 16:28 ` OT grammar nit " John Robinson
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=1291763802-8251-3-git-send-email-snitzer@redhat.com \ --to=snitzer@redhat.com \ --cc=James.Bottomley@suse.de \ --cc=chris.mason@oracle.com \ --cc=dm-devel@redhat.com \ --cc=hare@suse.de \ --cc=hch@lst.de \ --cc=j-nomura@ce.jp.nec.com \ --cc=jack@suse.cz \ --cc=jaxboe@fusionio.com \ --cc=k-ueda@ct.jp.nec.com \ --cc=konishi.ryusuke@lab.ntt.co.jp \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-ide@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-raid@vger.kernel.org \ --cc=linux-scsi@vger.kernel.org \ --cc=michaelc@cs.wisc.edu \ --cc=rwheeler@redhat.com \ --cc=sshtylyov@mvista.com \ --cc=swhiteho@redhat.com \ --cc=tj@kernel.org \ --cc=tytso@mit.edu \ --cc=vst@vlnb.net \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.