Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[platform/kernel/linux-starfive.git] / drivers / block / pktcdvd.c
index aca94eb..86c8794 100644 (file)
@@ -1022,9 +1022,8 @@ static void pkt_gather_data(struct pktcdvd_device *pd, struct packet_data *pkt)
                        continue;
 
                bio = pkt->r_bios[f];
-               bio_reset(bio);
+               bio_reset(bio, pd->bdev, REQ_OP_READ);
                bio->bi_iter.bi_sector = pkt->sector + f * (CD_FRAMESIZE >> 9);
-               bio_set_dev(bio, pd->bdev);
                bio->bi_end_io = pkt_end_io_read;
                bio->bi_private = pkt;
 
@@ -1036,7 +1035,6 @@ static void pkt_gather_data(struct pktcdvd_device *pd, struct packet_data *pkt)
                        BUG();
 
                atomic_inc(&pkt->io_wait);
-               bio_set_op_attrs(bio, REQ_OP_READ, 0);
                pkt_queue_bio(pd, bio);
                frames_read++;
        }
@@ -1237,9 +1235,8 @@ static void pkt_start_write(struct pktcdvd_device *pd, struct packet_data *pkt)
 {
        int f;
 
-       bio_reset(pkt->w_bio);
+       bio_reset(pkt->w_bio, pd->bdev, REQ_OP_WRITE);
        pkt->w_bio->bi_iter.bi_sector = pkt->sector;
-       bio_set_dev(pkt->w_bio, pd->bdev);
        pkt->w_bio->bi_end_io = pkt_end_io_packet_write;
        pkt->w_bio->bi_private = pkt;
 
@@ -1272,7 +1269,6 @@ static void pkt_start_write(struct pktcdvd_device *pd, struct packet_data *pkt)
 
        /* Start the write request */
        atomic_set(&pkt->io_wait, 1);
-       bio_set_op_attrs(pkt->w_bio, REQ_OP_WRITE, 0);
        pkt_queue_bio(pd, pkt->w_bio);
 }
 
@@ -2300,12 +2296,12 @@ static void pkt_end_io_read_cloned(struct bio *bio)
 
 static void pkt_make_request_read(struct pktcdvd_device *pd, struct bio *bio)
 {
-       struct bio *cloned_bio = bio_clone_fast(bio, GFP_NOIO, &pkt_bio_set);
+       struct bio *cloned_bio =
+               bio_alloc_clone(pd->bdev, bio, GFP_NOIO, &pkt_bio_set);
        struct packet_stacked_data *psd = mempool_alloc(&psd_pool, GFP_NOIO);
 
        psd->pd = pd;
        psd->bio = bio;
-       bio_set_dev(cloned_bio, pd->bdev);
        cloned_bio->bi_private = psd;
        cloned_bio->bi_end_io = pkt_end_io_read_cloned;
        pd->stats.secs_r += bio_sectors(bio);
@@ -2406,18 +2402,11 @@ static void pkt_make_request_write(struct request_queue *q, struct bio *bio)
 
 static void pkt_submit_bio(struct bio *bio)
 {
-       struct pktcdvd_device *pd;
-       char b[BDEVNAME_SIZE];
+       struct pktcdvd_device *pd = bio->bi_bdev->bd_disk->queue->queuedata;
        struct bio *split;
 
        blk_queue_split(&bio);
 
-       pd = bio->bi_bdev->bd_disk->queue->queuedata;
-       if (!pd) {
-               pr_err("%s incorrect request queue\n", bio_devname(bio, b));
-               goto end_io;
-       }
-
        pkt_dbg(2, pd, "start = %6llx stop = %6llx\n",
                (unsigned long long)bio->bi_iter.bi_sector,
                (unsigned long long)bio_end_sector(bio));