pNFS: Fix race in pnfs_wait_on_layoutreturn
[firefly-linux-kernel-4.4.55.git] / block / blk-mq.c
index c3e461ec40e4c9ceeb7b0595bf088957354ce752..9f99a01b00e8e51751be4ff0a44417cb9645e228 100644 (file)
@@ -1313,9 +1313,9 @@ static blk_qc_t blk_mq_make_request(struct request_queue *q, struct bio *bio)
                blk_mq_put_ctx(data.ctx);
                if (!old_rq)
                        goto done;
-               if (!blk_mq_direct_issue_request(old_rq, &cookie))
-                       goto done;
-               blk_mq_insert_request(old_rq, false, true, true);
+               if (test_bit(BLK_MQ_S_STOPPED, &data.hctx->state) ||
+                   blk_mq_direct_issue_request(old_rq, &cookie) != 0)
+                       blk_mq_insert_request(old_rq, false, true, true);
                goto done;
        }