spinlock_t lock;
 };
 
-static int scm_blk_request(struct blk_mq_hw_ctx *hctx,
+static blk_status_t scm_blk_request(struct blk_mq_hw_ctx *hctx,
                           const struct blk_mq_queue_data *qd)
 {
        struct scm_device *scmdev = hctx->queue->queuedata;
        spin_lock(&sq->lock);
        if (!scm_permit_request(bdev, req)) {
                spin_unlock(&sq->lock);
-               return BLK_MQ_RQ_QUEUE_BUSY;
+               return BLK_STS_RESOURCE;
        }
 
        scmrq = sq->scmrq;
                if (!scmrq) {
                        SCM_LOG(5, "no request");
                        spin_unlock(&sq->lock);
-                       return BLK_MQ_RQ_QUEUE_BUSY;
+                       return BLK_STS_RESOURCE;
                }
                scm_request_init(bdev, scmrq);
                sq->scmrq = scmrq;
 
                sq->scmrq = NULL;
                spin_unlock(&sq->lock);
-               return BLK_MQ_RQ_QUEUE_BUSY;
+               return BLK_STS_RESOURCE;
        }
        blk_mq_start_request(req);
 
                sq->scmrq = NULL;
        }
        spin_unlock(&sq->lock);
-       return BLK_MQ_RQ_QUEUE_OK;
+       return BLK_STS_OK;
 }
 
 static int scm_blk_init_hctx(struct blk_mq_hw_ctx *hctx, void *data,