skd: Split skd_recover_requests()
authorBart Van Assche <bart.vanassche@wdc.com>
Thu, 17 Aug 2017 20:13:29 +0000 (13:13 -0700)
committerJens Axboe <axboe@kernel.dk>
Fri, 18 Aug 2017 14:45:29 +0000 (08:45 -0600)
This patch does not change any functionality but makes the blk-mq
conversion patch easier to read.

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/skd_main.c

index 1d10373b0da365158d77f9905e218ce5bd62773c..451974138b3219dbc58a7f5f2eedfb1f30ad2ceb 100644 (file)
@@ -2031,31 +2031,36 @@ static void skd_isr_fwstate(struct skd_device *skdev)
                skd_skdev_state_to_str(skdev->state), skdev->state);
 }
 
-static void skd_recover_requests(struct skd_device *skdev)
+static void skd_recover_request(struct skd_device *skdev,
+                               struct skd_request_context *skreq)
 {
-       int i;
+       struct request *req = skreq->req;
 
-       for (i = 0; i < skdev->num_req_context; i++) {
-               struct skd_request_context *skreq = &skdev->skreq_table[i];
-               struct request *req = skreq->req;
+       if (skreq->state != SKD_REQ_STATE_BUSY)
+               return;
+
+       skd_log_skreq(skdev, skreq, "recover");
+
+       SKD_ASSERT(req != NULL);
 
-               if (skreq->state == SKD_REQ_STATE_BUSY) {
-                       skd_log_skreq(skdev, skreq, "recover");
+       /* Release DMA resources for the request. */
+       if (skreq->n_sg > 0)
+               skd_postop_sg_list(skdev, skreq);
 
-                       SKD_ASSERT((skreq->id & SKD_ID_INCR) != 0);
-                       SKD_ASSERT(req != NULL);
+       skreq->req = NULL;
+       skreq->state = SKD_REQ_STATE_IDLE;
 
-                       /* Release DMA resources for the request. */
-                       if (skreq->n_sg > 0)
-                               skd_postop_sg_list(skdev, skreq);
+       skd_end_request(skdev, req, BLK_STS_IOERR);
+}
 
-                       skreq->req = NULL;
+static void skd_recover_requests(struct skd_device *skdev)
+{
+       int i;
 
-                       skreq->state = SKD_REQ_STATE_IDLE;
-                       skreq->id += SKD_ID_INCR;
+       for (i = 0; i < skdev->num_req_context; i++) {
+               struct skd_request_context *skreq = &skdev->skreq_table[i];
 
-                       skd_end_request(skdev, req, BLK_STS_IOERR);
-               }
+               skd_recover_request(skdev, skreq);
        }
 
        for (i = 0; i < SKD_N_TIMEOUT_SLOT; i++)