block: change ->make_request_fn() and users to return a queue cookie
[cascardo/linux.git] / drivers / nvdimm / blk.c
index 4f97b24..91a336e 100644 (file)
@@ -161,7 +161,7 @@ static int nd_blk_do_bvec(struct nd_blk_device *blk_dev,
        return err;
 }
 
-static void nd_blk_make_request(struct request_queue *q, struct bio *bio)
+static blk_qc_t nd_blk_make_request(struct request_queue *q, struct bio *bio)
 {
        struct block_device *bdev = bio->bi_bdev;
        struct gendisk *disk = bdev->bd_disk;
@@ -180,7 +180,7 @@ static void nd_blk_make_request(struct request_queue *q, struct bio *bio)
         * another kernel subsystem, and we just pass it through.
         */
        if (bio_integrity_enabled(bio) && bio_integrity_prep(bio)) {
-               err = -EIO;
+               bio->bi_error = -EIO;
                goto out;
        }
 
@@ -199,6 +199,7 @@ static void nd_blk_make_request(struct request_queue *q, struct bio *bio)
                                        "io error in %s sector %lld, len %d,\n",
                                        (rw == READ) ? "READ" : "WRITE",
                                        (unsigned long long) iter.bi_sector, len);
+                       bio->bi_error = err;
                        break;
                }
        }
@@ -206,7 +207,8 @@ static void nd_blk_make_request(struct request_queue *q, struct bio *bio)
                nd_iostat_end(bio, start);
 
  out:
-       bio_endio(bio, err);
+       bio_endio(bio);
+       return BLK_QC_T_NONE;
 }
 
 static int nd_blk_rw_bytes(struct nd_namespace_common *ndns,