mtip32xx: add a status field to struct mtip_cmd
authorChristoph Hellwig <hch@lst.de>
Thu, 20 Apr 2017 14:03:07 +0000 (16:03 +0200)
committerJens Axboe <axboe@fb.com>
Thu, 20 Apr 2017 18:16:10 +0000 (12:16 -0600)
Instead of using req->errors, which will go away.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/block/mtip32xx/mtip32xx.c
drivers/block/mtip32xx/mtip32xx.h

index 05e3e664ea1b877c8af9fd5b9177d5dcf957f070..7406de29db5839cf55a8e2d76897f82df1970c66 100644 (file)
@@ -241,7 +241,8 @@ static void mtip_async_complete(struct mtip_port *port,
 
        rq = mtip_rq_from_tag(dd, tag);
 
-       blk_mq_complete_request(rq, status);
+       cmd->status = status;
+       blk_mq_complete_request(rq, 0);
 }
 
 /*
@@ -2910,18 +2911,19 @@ static void mtip_softirq_done_fn(struct request *rq)
        if (unlikely(cmd->unaligned))
                up(&dd->port->cmd_slot_unal);
 
-       blk_mq_end_request(rq, rq->errors);
+       blk_mq_end_request(rq, cmd->status);
 }
 
 static void mtip_abort_cmd(struct request *req, void *data,
                                                        bool reserved)
 {
+       struct mtip_cmd *cmd = blk_mq_rq_to_pdu(req);
        struct driver_data *dd = data;
 
        dbg_printk(MTIP_DRV_NAME " Aborting request, tag = %d\n", req->tag);
 
        clear_bit(req->tag, dd->port->cmds_to_issue);
-       req->errors = -EIO;
+       cmd->status = -EIO;
        mtip_softirq_done_fn(req);
 }
 
@@ -3816,7 +3818,6 @@ static int mtip_queue_rq(struct blk_mq_hw_ctx *hctx,
        if (likely(!ret))
                return BLK_MQ_RQ_QUEUE_OK;
 
-       rq->errors = ret;
        return BLK_MQ_RQ_QUEUE_ERROR;
 }
 
@@ -4106,9 +4107,10 @@ static void mtip_no_dev_cleanup(struct request *rq, void *data, bool reserv)
        struct driver_data *dd = (struct driver_data *)data;
        struct mtip_cmd *cmd;
 
-       if (likely(!reserv))
-               blk_mq_complete_request(rq, -ENODEV);
-       else if (test_bit(MTIP_PF_IC_ACTIVE_BIT, &dd->port->flags)) {
+       if (likely(!reserv)) {
+               cmd->status = -ENODEV;
+               blk_mq_complete_request(rq, 0);
+       } else if (test_bit(MTIP_PF_IC_ACTIVE_BIT, &dd->port->flags)) {
 
                cmd = mtip_cmd_from_tag(dd, MTIP_TAG_INTERNAL);
                if (cmd->comp_func)
index 7617888f79449d55ac9402bfef7f01788ef138cf..57b41528a8248b27410b327a90853ac7ccdf645f 100644 (file)
@@ -352,6 +352,7 @@ struct mtip_cmd {
        int retries; /* The number of retries left for this command. */
 
        int direction; /* Data transfer direction */
+       int status;
 };
 
 /* Structure used to describe a port. */