EILSEQ is returned due to internal csum error on disk/fabric,
let's add special message to distinguish it from others. Also dump
original numerical error code.

Signed-off-by: Dmitry Monakhov <[email protected]>
---
 block/blk-core.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/block/blk-core.c b/block/blk-core.c
index 071a998..8eab846 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -2576,13 +2576,16 @@ bool blk_update_request(struct request *req, int error, 
unsigned int nr_bytes)
                case -ENODATA:
                        error_type = "critical medium";
                        break;
+               case -EILSEQ:
+                       error_type = "bad data";
+                       break;
                case -EIO:
                default:
                        error_type = "I/O";
                        break;
                }
-               printk_ratelimited(KERN_ERR "%s: %s error, dev %s, sector 
%llu\n",
-                                  __func__, error_type, req->rq_disk ?
+               printk_ratelimited(KERN_ERR "%s: %s error (%d), dev %s, sector 
%llu\n",
+                                  __func__, error_type, error, req->rq_disk ?
                                   req->rq_disk->disk_name : "?",
                                   (unsigned long long)blk_rq_pos(req));
 
-- 
2.9.3

Reply via email to