diff mbox

dm mpath: do not fail path on -ENOSPC

Message ID 5232A896.80803@ce.jp.nec.com (mailing list archive)
State Awaiting Upstream, archived
Delegated to: Mike Snitzer
Headers show

Commit Message

Junichi Nomura Sept. 13, 2013, 5:54 a.m. UTC
Since ENOSPC is a target-side error, dm-mpath should just pass the error
information to upper layer instead of retrying itself with path failover.
Otherwise it will end up failing all paths down while path checkers find
all paths ok.

ENOSPC can now be returned from SCSI device after commit a9d6ceb8
("[SCSI] return ENOSPC on thin provisioning failure").

Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
Cc: Hannes Reinecke <hare@suse.de>
---
 drivers/md/dm-mpath.c | 1 +
 1 file changed, 1 insertion(+)

The patch is not actually tested as I don't have such a storage at my hand.
Hannes, please let me know if you didn't change noretry_error() intentionally.


--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

Comments

Hannes Reinecke Sept. 13, 2013, 5:58 a.m. UTC | #1
On 09/13/2013 07:54 AM, Jun'ichi Nomura wrote:
> Since ENOSPC is a target-side error, dm-mpath should just pass the error
> information to upper layer instead of retrying itself with path failover.
> Otherwise it will end up failing all paths down while path checkers find
> all paths ok.
> 
> ENOSPC can now be returned from SCSI device after commit a9d6ceb8
> ("[SCSI] return ENOSPC on thin provisioning failure").
> 
> Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
> Cc: Hannes Reinecke <hare@suse.de>
> ---
>  drivers/md/dm-mpath.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> The patch is not actually tested as I don't have such a storage at my hand.
> Hannes, please let me know if you didn't change noretry_error() intentionally.
> 
No, you are correct. I've missed this bit when sending out the
enhanced I/O errors patch.

Acked-by: Hannes Reinecke <hare@suse.de>

> diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
> index b759a12..075747e 100644
> --- a/drivers/md/dm-mpath.c
> +++ b/drivers/md/dm-mpath.c
> @@ -1268,6 +1268,7 @@ static int noretry_error(int error)
>  	case -EREMOTEIO:
>  	case -EILSEQ:
>  	case -ENODATA:
> +	case -ENOSPC:
>  		return 1;
>  	}
>  
> 

Cheers,

Hannes
diff mbox

Patch

diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
index b759a12..075747e 100644
--- a/drivers/md/dm-mpath.c
+++ b/drivers/md/dm-mpath.c
@@ -1268,6 +1268,7 @@  static int noretry_error(int error)
 	case -EREMOTEIO:
 	case -EILSEQ:
 	case -ENODATA:
+	case -ENOSPC:
 		return 1;
 	}