Re: [PATCH v4 3/3] block: improve detail in I/O error messages

Mike Snitzer
2011-01-27T22:54:47Z

On Tue, Jan 18, 2011 at 4:13 AM, Hannes Reinecke <hare@suse.de> wrote:
> Classify severity of I/O errors for target, nexus, and
> transport errors.
>
> Signed-off-by: Mike Snitzer <snitzer@redhat.com>
> Signed-off-by: Hannes Reinecke <hare@suse.de>
> ---
>  block/blk-core.c |   23 ++++++++++++++++++++---
>  1 files changed, 20 insertions(+), 3 deletions(-)
>
> diff --git a/block/blk-core.c b/block/blk-core.c
> index 4ce953f..3380a49 100644
> --- a/block/blk-core.c
> +++ b/block/blk-core.c
> @@ -2028,9 +2028,26 @@ bool blk_update_request(struct request *req, int error, unsigned int nr_bytes)
>
>        if (error && req->cmd_type == REQ_TYPE_FS &&
>            !(req->cmd_flags & REQ_QUIET)) {
> -               printk(KERN_ERR "end_request: I/O error, dev %s, sector %llu\n",
> -                               req->rq_disk ? req->rq_disk->disk_name : "?",
> -                               (unsigned long long)blk_rq_pos(req));
> +               char *error_type;
> +
> +               switch (error) {
> +               case -ENOLINK:
> +                       error_type = "recoverable transport";
> +                       break;
> +               case -EREMOTEIO:
> +                       error_type = "critical target";
> +                       break;
> +               case -EBADE:
> +                       error_type = "critical nexus";
> +                       break;
> +               case -EIO:
> +               default:
> +                       error_type = "I/O";
> +                       break;
> +               }
> +               printk(KERN_ERR "end_request: %s error, dev %s, sector %llu\n",
> +                      error_type, req->rq_disk ? req->rq_disk->disk_name : "?",
> +                      (unsigned long long)blk_rq_pos(req));
>        }
>
>        blk_account_io_completion(req, nr_bytes);
> --

Hi Jens,

Are you OK with this change provided James takes the SCSI patch? If
so, should James pull this block patch in too to avoid dependency
concerns between trees?

Same question goes for the dm-mpath change (patch 2/3), Alasdair?

To ease merging with Linus, might be best if all patches were to go in
through a single tree.. if James were to carry these small block and
DM patches I'd wager chances of collision are slim.

Please advise, thanks.
Mike
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html