Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

block: remove the ->rq_disk field in struct request

Just use the disk attached to the request_queue instead.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Link: https://lore.kernel.org/r/20211126121802.2090656-4-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Christoph Hellwig and committed by
Jens Axboe
f3fa33ac 79bb1dbd

+62 -67
+1 -2
block/blk-flush.c
··· 145 145 146 146 static void blk_account_io_flush(struct request *rq) 147 147 { 148 - struct block_device *part = rq->rq_disk->part0; 148 + struct block_device *part = rq->q->disk->part0; 149 149 150 150 part_stat_lock(); 151 151 part_stat_inc(part, ios[STAT_FLUSH]); ··· 339 339 flush_rq->cmd_flags = REQ_OP_FLUSH | REQ_PREFLUSH; 340 340 flush_rq->cmd_flags |= (flags & REQ_DRV) | (flags & REQ_FAILFAST_MASK); 341 341 flush_rq->rq_flags |= RQF_FLUSH_SEQ; 342 - flush_rq->rq_disk = first_rq->rq_disk; 343 342 flush_rq->end_io = flush_end_io; 344 343 /* 345 344 * Order WRITE ->end_io and WRITE rq->ref, and its pair is the one
+6 -8
block/blk-mq.c
··· 377 377 rq->start_time_ns = ktime_get_ns(); 378 378 else 379 379 rq->start_time_ns = 0; 380 - rq->rq_disk = NULL; 381 380 rq->part = NULL; 382 381 #ifdef CONFIG_BLK_RQ_ALLOC_TIME 383 382 rq->alloc_time_ns = alloc_time_ns; ··· 658 659 void blk_dump_rq_flags(struct request *rq, char *msg) 659 660 { 660 661 printk(KERN_INFO "%s: dev %s: flags=%llx\n", msg, 661 - rq->rq_disk ? rq->rq_disk->disk_name : "?", 662 + rq->q->disk ? rq->q->disk->disk_name : "?", 662 663 (unsigned long long) rq->cmd_flags); 663 664 664 665 printk(KERN_INFO " sector %llu, nr/cnr %u/%u\n", ··· 711 712 "%s error, dev %s, sector %llu op 0x%x:(%s) flags 0x%x " 712 713 "phys_seg %u prio class %u\n", 713 714 blk_status_to_str(status), 714 - req->rq_disk ? req->rq_disk->disk_name : "?", 715 + req->q->disk ? req->q->disk->disk_name : "?", 715 716 blk_rq_pos(req), req_op(req), blk_op_str(req_op(req)), 716 717 req->cmd_flags & ~REQ_OP_MASK, 717 718 req->nr_phys_segments, ··· 852 853 /* passthrough requests can hold bios that do not have ->bi_bdev set */ 853 854 if (rq->bio && rq->bio->bi_bdev) 854 855 rq->part = rq->bio->bi_bdev; 855 - else 856 - rq->part = rq->rq_disk->part0; 856 + else if (rq->q->disk) 857 + rq->part = rq->q->disk->part0; 857 858 858 859 part_stat_lock(); 859 860 update_io_ticks(rq->part, jiffies, false); ··· 1171 1172 WARN_ON(irqs_disabled()); 1172 1173 WARN_ON(!blk_rq_is_passthrough(rq)); 1173 1174 1174 - rq->rq_disk = bd_disk; 1175 1175 rq->end_io = done; 1176 1176 1177 1177 blk_account_io_start(rq); ··· 2900 2902 if (ret != BLK_STS_OK) 2901 2903 return ret; 2902 2904 2903 - if (rq->rq_disk && 2904 - should_fail_request(rq->rq_disk->part0, blk_rq_bytes(rq))) 2905 + if (rq->q->disk && 2906 + should_fail_request(rq->q->disk->part0, blk_rq_bytes(rq))) 2905 2907 return BLK_STS_IOERR; 2906 2908 2907 2909 if (blk_crypto_insert_cloned_request(rq))
+1 -1
block/blk.h
··· 324 324 */ 325 325 static inline bool blk_do_io_stat(struct request *rq) 326 326 { 327 - return (rq->rq_flags & RQF_IO_STAT) && rq->rq_disk; 327 + return (rq->rq_flags & RQF_IO_STAT) && rq->q->disk; 328 328 } 329 329 330 330 void update_io_ticks(struct block_device *part, unsigned long now, bool end);
+1 -1
drivers/block/amiflop.c
··· 1505 1505 const struct blk_mq_queue_data *bd) 1506 1506 { 1507 1507 struct request *rq = bd->rq; 1508 - struct amiga_floppy_struct *floppy = rq->rq_disk->private_data; 1508 + struct amiga_floppy_struct *floppy = rq->q->disk->private_data; 1509 1509 blk_status_t err; 1510 1510 1511 1511 if (!spin_trylock_irq(&amiflop_lock))
+3 -3
drivers/block/ataflop.c
··· 1502 1502 static blk_status_t ataflop_queue_rq(struct blk_mq_hw_ctx *hctx, 1503 1503 const struct blk_mq_queue_data *bd) 1504 1504 { 1505 - struct atari_floppy_struct *floppy = bd->rq->rq_disk->private_data; 1505 + struct atari_floppy_struct *floppy = bd->rq->q->disk->private_data; 1506 1506 int drive = floppy - unit; 1507 1507 int type = floppy->type; 1508 1508 ··· 1538 1538 if (!UDT) { 1539 1539 Probing = 1; 1540 1540 UDT = atari_disk_type + StartDiskType[DriveType]; 1541 - set_capacity(bd->rq->rq_disk, UDT->blocks); 1541 + set_capacity(bd->rq->q->disk, UDT->blocks); 1542 1542 UD.autoprobe = 1; 1543 1543 } 1544 1544 } ··· 1558 1558 } 1559 1559 type = minor2disktype[type].index; 1560 1560 UDT = &atari_disk_type[type]; 1561 - set_capacity(bd->rq->rq_disk, UDT->blocks); 1561 + set_capacity(bd->rq->q->disk, UDT->blocks); 1562 1562 UD.autoprobe = 0; 1563 1563 } 1564 1564
+3 -3
drivers/block/floppy.c
··· 2259 2259 static void floppy_end_request(struct request *req, blk_status_t error) 2260 2260 { 2261 2261 unsigned int nr_sectors = current_count_sectors; 2262 - unsigned int drive = (unsigned long)req->rq_disk->private_data; 2262 + unsigned int drive = (unsigned long)req->q->disk->private_data; 2263 2263 2264 2264 /* current_count_sectors can be zero if transfer failed */ 2265 2265 if (error) ··· 2550 2550 if (WARN(max_buffer_sectors == 0, "VFS: Block I/O scheduled on unopened device\n")) 2551 2551 return 0; 2552 2552 2553 - set_fdc((long)current_req->rq_disk->private_data); 2553 + set_fdc((long)current_req->q->disk->private_data); 2554 2554 2555 2555 raw_cmd = &default_raw_cmd; 2556 2556 raw_cmd->flags = FD_RAW_SPIN | FD_RAW_NEED_DISK | FD_RAW_NEED_SEEK; ··· 2792 2792 return; 2793 2793 } 2794 2794 } 2795 - drive = (long)current_req->rq_disk->private_data; 2795 + drive = (long)current_req->q->disk->private_data; 2796 2796 set_fdc(drive); 2797 2797 reschedule_timeout(current_drive, "redo fd request"); 2798 2798
+1 -1
drivers/block/null_blk/trace.h
··· 44 44 __entry->op = req_op(cmd->rq); 45 45 __entry->zone_no = zone_no; 46 46 __entry->zone_cond = zone_cond; 47 - __assign_disk_name(__entry->disk, cmd->rq->rq_disk); 47 + __assign_disk_name(__entry->disk, cmd->rq->q->disk); 48 48 ), 49 49 TP_printk("%s req=%-15s zone_no=%u zone_cond=%-10s", 50 50 __print_disk_name(__entry->disk),
+1 -1
drivers/block/paride/pcd.c
··· 690 690 if (!pcd_req && !set_next_request()) 691 691 return; 692 692 693 - cd = pcd_req->rq_disk->private_data; 693 + cd = pcd_req->q->disk->private_data; 694 694 if (cd != pcd_current) 695 695 pcd_bufblk = -1; 696 696 pcd_current = cd;
+2 -2
drivers/block/paride/pd.c
··· 430 430 int stop = 0; 431 431 432 432 if (!phase) { 433 - pd_current = pd_req->rq_disk->private_data; 433 + pd_current = pd_req->q->disk->private_data; 434 434 pi_current = pd_current->pi; 435 435 phase = do_pd_io_start; 436 436 } ··· 492 492 case REQ_OP_WRITE: 493 493 pd_block = blk_rq_pos(pd_req); 494 494 pd_count = blk_rq_cur_sectors(pd_req); 495 - if (pd_block + pd_count > get_capacity(pd_req->rq_disk)) 495 + if (pd_block + pd_count > get_capacity(pd_req->q->disk)) 496 496 return Fail; 497 497 pd_run = blk_rq_sectors(pd_req); 498 498 pd_buf = bio_data(pd_req->bio);
+2 -2
drivers/block/paride/pf.c
··· 746 746 if (!pf_req && !set_next_request()) 747 747 return; 748 748 749 - pf_current = pf_req->rq_disk->private_data; 749 + pf_current = pf_req->q->disk->private_data; 750 750 pf_block = blk_rq_pos(pf_req); 751 751 pf_run = blk_rq_sectors(pf_req); 752 752 pf_count = blk_rq_cur_sectors(pf_req); 753 753 754 - if (pf_block + pf_count > get_capacity(pf_req->rq_disk)) { 754 + if (pf_block + pf_count > get_capacity(pf_req->q->disk)) { 755 755 pf_end_request(BLK_STS_IOERR); 756 756 goto repeat; 757 757 }
+2 -2
drivers/block/rnbd/rnbd-clt.c
··· 393 393 394 394 static void rnbd_softirq_done_fn(struct request *rq) 395 395 { 396 - struct rnbd_clt_dev *dev = rq->rq_disk->private_data; 396 + struct rnbd_clt_dev *dev = rq->q->disk->private_data; 397 397 struct rnbd_clt_session *sess = dev->sess; 398 398 struct rnbd_iu *iu; 399 399 ··· 1133 1133 const struct blk_mq_queue_data *bd) 1134 1134 { 1135 1135 struct request *rq = bd->rq; 1136 - struct rnbd_clt_dev *dev = rq->rq_disk->private_data; 1136 + struct rnbd_clt_dev *dev = rq->q->disk->private_data; 1137 1137 struct rnbd_iu *iu = blk_mq_rq_to_pdu(rq); 1138 1138 int err; 1139 1139 blk_status_t ret = BLK_STS_IOERR;
+1 -1
drivers/block/sunvdc.c
··· 462 462 463 463 static int __send_request(struct request *req) 464 464 { 465 - struct vdc_port *port = req->rq_disk->private_data; 465 + struct vdc_port *port = req->q->disk->private_data; 466 466 struct vio_dring_state *dr = &port->vio.drings[VIO_DRIVER_TX_RING]; 467 467 struct scatterlist sg[MAX_RING_COOKIES]; 468 468 struct vdc_req_entry *rqe;
-1
drivers/md/dm-mpath.c
··· 550 550 return DM_MAPIO_REQUEUE; 551 551 } 552 552 clone->bio = clone->biotail = NULL; 553 - clone->rq_disk = bdev->bd_disk; 554 553 clone->cmd_flags |= REQ_FAILFAST_TRANSPORT; 555 554 *__clone = clone; 556 555
+1 -1
drivers/mmc/core/block.c
··· 1837 1837 /* Reset if the card is in a bad state */ 1838 1838 if (!mmc_host_is_spi(mq->card->host) && 1839 1839 err && mmc_blk_reset(md, card->host, type)) { 1840 - pr_err("%s: recovery failed!\n", req->rq_disk->disk_name); 1840 + pr_err("%s: recovery failed!\n", req->q->disk->disk_name); 1841 1841 mqrq->retries = MMC_NO_RETRIES; 1842 1842 return; 1843 1843 }
+1 -1
drivers/nvme/host/fault_inject.c
··· 56 56 57 57 void nvme_should_fail(struct request *req) 58 58 { 59 - struct gendisk *disk = req->rq_disk; 59 + struct gendisk *disk = req->q->disk; 60 60 struct nvme_fault_inject *fault_inject = NULL; 61 61 u16 status; 62 62
+3 -3
drivers/nvme/host/trace.h
··· 68 68 __entry->nsid = le32_to_cpu(cmd->common.nsid); 69 69 __entry->metadata = !!blk_integrity_rq(req); 70 70 __entry->fctype = cmd->fabrics.fctype; 71 - __assign_disk_name(__entry->disk, req->rq_disk); 71 + __assign_disk_name(__entry->disk, req->q->disk); 72 72 memcpy(__entry->cdw10, &cmd->common.cdw10, 73 73 sizeof(__entry->cdw10)); 74 74 ), ··· 103 103 __entry->retries = nvme_req(req)->retries; 104 104 __entry->flags = nvme_req(req)->flags; 105 105 __entry->status = nvme_req(req)->status; 106 - __assign_disk_name(__entry->disk, req->rq_disk); 106 + __assign_disk_name(__entry->disk, req->q->disk); 107 107 ), 108 108 TP_printk("nvme%d: %sqid=%d, cmdid=%u, res=%#llx, retries=%u, flags=0x%x, status=%#x", 109 109 __entry->ctrl_id, __print_disk_name(__entry->disk), ··· 153 153 ), 154 154 TP_fast_assign( 155 155 __entry->ctrl_id = nvme_req(req)->ctrl->instance; 156 - __assign_disk_name(__entry->disk, req->rq_disk); 156 + __assign_disk_name(__entry->disk, req->q->disk); 157 157 __entry->qid = nvme_req_qid(req); 158 158 __entry->sq_head = le16_to_cpu(sq_head); 159 159 __entry->sq_tail = sq_tail;
+2 -1
drivers/scsi/scsi_lib.c
··· 543 543 if (blk_update_request(req, error, bytes)) 544 544 return true; 545 545 546 + // XXX: 546 547 if (blk_queue_add_random(q)) 547 - add_disk_randomness(req->rq_disk); 548 + add_disk_randomness(req->q->disk); 548 549 549 550 if (!blk_rq_is_passthrough(req)) { 550 551 WARN_ON_ONCE(!(cmd->flags & SCMD_INITIALIZED));
+3 -1
drivers/scsi/scsi_logging.c
··· 30 30 { 31 31 struct request *rq = scsi_cmd_to_rq((struct scsi_cmnd *)scmd); 32 32 33 - return rq->rq_disk ? rq->rq_disk->disk_name : NULL; 33 + if (!rq->q->disk) 34 + return NULL; 35 + return rq->q->disk->disk_name; 34 36 } 35 37 36 38 static size_t sdev_format_header(char *logbuf, size_t logbuf_len,
+12 -12
drivers/scsi/sd.c
··· 872 872 { 873 873 struct scsi_device *sdp = cmd->device; 874 874 struct request *rq = scsi_cmd_to_rq(cmd); 875 - struct scsi_disk *sdkp = scsi_disk(rq->rq_disk); 875 + struct scsi_disk *sdkp = scsi_disk(rq->q->disk); 876 876 u64 lba = sectors_to_logical(sdp, blk_rq_pos(rq)); 877 877 u32 nr_blocks = sectors_to_logical(sdp, blk_rq_sectors(rq)); 878 878 unsigned int data_len = 24; ··· 908 908 { 909 909 struct scsi_device *sdp = cmd->device; 910 910 struct request *rq = scsi_cmd_to_rq(cmd); 911 - struct scsi_disk *sdkp = scsi_disk(rq->rq_disk); 911 + struct scsi_disk *sdkp = scsi_disk(rq->q->disk); 912 912 u64 lba = sectors_to_logical(sdp, blk_rq_pos(rq)); 913 913 u32 nr_blocks = sectors_to_logical(sdp, blk_rq_sectors(rq)); 914 914 u32 data_len = sdp->sector_size; ··· 940 940 { 941 941 struct scsi_device *sdp = cmd->device; 942 942 struct request *rq = scsi_cmd_to_rq(cmd); 943 - struct scsi_disk *sdkp = scsi_disk(rq->rq_disk); 943 + struct scsi_disk *sdkp = scsi_disk(rq->q->disk); 944 944 u64 lba = sectors_to_logical(sdp, blk_rq_pos(rq)); 945 945 u32 nr_blocks = sectors_to_logical(sdp, blk_rq_sectors(rq)); 946 946 u32 data_len = sdp->sector_size; ··· 971 971 { 972 972 struct request *rq = scsi_cmd_to_rq(cmd); 973 973 struct scsi_device *sdp = cmd->device; 974 - struct scsi_disk *sdkp = scsi_disk(rq->rq_disk); 974 + struct scsi_disk *sdkp = scsi_disk(rq->q->disk); 975 975 u64 lba = sectors_to_logical(sdp, blk_rq_pos(rq)); 976 976 u32 nr_blocks = sectors_to_logical(sdp, blk_rq_sectors(rq)); 977 977 ··· 1068 1068 { 1069 1069 struct request *rq = scsi_cmd_to_rq(cmd); 1070 1070 struct scsi_device *sdp = cmd->device; 1071 - struct scsi_disk *sdkp = scsi_disk(rq->rq_disk); 1071 + struct scsi_disk *sdkp = scsi_disk(rq->q->disk); 1072 1072 struct bio *bio = rq->bio; 1073 1073 u64 lba = sectors_to_logical(sdp, blk_rq_pos(rq)); 1074 1074 u32 nr_blocks = sectors_to_logical(sdp, blk_rq_sectors(rq)); ··· 1116 1116 static blk_status_t sd_setup_flush_cmnd(struct scsi_cmnd *cmd) 1117 1117 { 1118 1118 struct request *rq = scsi_cmd_to_rq(cmd); 1119 - struct scsi_disk *sdkp = scsi_disk(rq->rq_disk); 1119 + struct scsi_disk *sdkp = scsi_disk(rq->q->disk); 1120 1120 1121 1121 /* flush requests don't perform I/O, zero the S/G table */ 1122 1122 memset(&cmd->sdb, 0, sizeof(cmd->sdb)); ··· 1215 1215 { 1216 1216 struct request *rq = scsi_cmd_to_rq(cmd); 1217 1217 struct scsi_device *sdp = cmd->device; 1218 - struct scsi_disk *sdkp = scsi_disk(rq->rq_disk); 1218 + struct scsi_disk *sdkp = scsi_disk(rq->q->disk); 1219 1219 sector_t lba = sectors_to_logical(sdp, blk_rq_pos(rq)); 1220 1220 sector_t threshold; 1221 1221 unsigned int nr_blocks = sectors_to_logical(sdp, blk_rq_sectors(rq)); ··· 1236 1236 goto fail; 1237 1237 } 1238 1238 1239 - if (blk_rq_pos(rq) + blk_rq_sectors(rq) > get_capacity(rq->rq_disk)) { 1239 + if (blk_rq_pos(rq) + blk_rq_sectors(rq) > get_capacity(rq->q->disk)) { 1240 1240 scmd_printk(KERN_ERR, cmd, "access beyond end of device\n"); 1241 1241 goto fail; 1242 1242 } ··· 1331 1331 1332 1332 switch (req_op(rq)) { 1333 1333 case REQ_OP_DISCARD: 1334 - switch (scsi_disk(rq->rq_disk)->provisioning_mode) { 1334 + switch (scsi_disk(rq->q->disk)->provisioning_mode) { 1335 1335 case SD_LBP_UNMAP: 1336 1336 return sd_setup_unmap_cmnd(cmd); 1337 1337 case SD_LBP_WS16: ··· 1917 1917 **/ 1918 1918 static void sd_eh_reset(struct scsi_cmnd *scmd) 1919 1919 { 1920 - struct scsi_disk *sdkp = scsi_disk(scsi_cmd_to_rq(scmd)->rq_disk); 1920 + struct scsi_disk *sdkp = scsi_disk(scsi_cmd_to_rq(scmd)->q->disk); 1921 1921 1922 1922 /* New SCSI EH run, reset gate variable */ 1923 1923 sdkp->ignore_medium_access_errors = false; ··· 1937 1937 **/ 1938 1938 static int sd_eh_action(struct scsi_cmnd *scmd, int eh_disp) 1939 1939 { 1940 - struct scsi_disk *sdkp = scsi_disk(scsi_cmd_to_rq(scmd)->rq_disk); 1940 + struct scsi_disk *sdkp = scsi_disk(scsi_cmd_to_rq(scmd)->q->disk); 1941 1941 struct scsi_device *sdev = scmd->device; 1942 1942 1943 1943 if (!scsi_device_online(sdev) || ··· 2034 2034 unsigned int resid; 2035 2035 struct scsi_sense_hdr sshdr; 2036 2036 struct request *req = scsi_cmd_to_rq(SCpnt); 2037 - struct scsi_disk *sdkp = scsi_disk(req->rq_disk); 2037 + struct scsi_disk *sdkp = scsi_disk(req->q->disk); 2038 2038 int sense_valid = 0; 2039 2039 int sense_deferred = 0; 2040 2040
+4 -4
drivers/scsi/sd_zbc.c
··· 244 244 static blk_status_t sd_zbc_cmnd_checks(struct scsi_cmnd *cmd) 245 245 { 246 246 struct request *rq = scsi_cmd_to_rq(cmd); 247 - struct scsi_disk *sdkp = scsi_disk(rq->rq_disk); 247 + struct scsi_disk *sdkp = scsi_disk(rq->q->disk); 248 248 sector_t sector = blk_rq_pos(rq); 249 249 250 250 if (!sd_is_zoned(sdkp)) ··· 322 322 unsigned int nr_blocks) 323 323 { 324 324 struct request *rq = scsi_cmd_to_rq(cmd); 325 - struct scsi_disk *sdkp = scsi_disk(rq->rq_disk); 325 + struct scsi_disk *sdkp = scsi_disk(rq->q->disk); 326 326 unsigned int wp_offset, zno = blk_rq_zone_no(rq); 327 327 unsigned long flags; 328 328 blk_status_t ret; ··· 388 388 { 389 389 struct request *rq = scsi_cmd_to_rq(cmd); 390 390 sector_t sector = blk_rq_pos(rq); 391 - struct scsi_disk *sdkp = scsi_disk(rq->rq_disk); 391 + struct scsi_disk *sdkp = scsi_disk(rq->q->disk); 392 392 sector_t block = sectors_to_logical(sdkp->device, sector); 393 393 blk_status_t ret; 394 394 ··· 443 443 { 444 444 int result = cmd->result; 445 445 struct request *rq = scsi_cmd_to_rq(cmd); 446 - struct scsi_disk *sdkp = scsi_disk(rq->rq_disk); 446 + struct scsi_disk *sdkp = scsi_disk(rq->q->disk); 447 447 unsigned int zno = blk_rq_zone_no(rq); 448 448 enum req_opf op = req_op(rq); 449 449 unsigned long flags;
+2 -2
drivers/scsi/sr.c
··· 335 335 int block_sectors = 0; 336 336 long error_sector; 337 337 struct request *rq = scsi_cmd_to_rq(SCpnt); 338 - struct scsi_cd *cd = scsi_cd(rq->rq_disk); 338 + struct scsi_cd *cd = scsi_cd(rq->q->disk); 339 339 340 340 #ifdef DEBUG 341 341 scmd_printk(KERN_INFO, SCpnt, "done: %x\n", result); ··· 402 402 ret = scsi_alloc_sgtables(SCpnt); 403 403 if (ret != BLK_STS_OK) 404 404 return ret; 405 - cd = scsi_cd(rq->rq_disk); 405 + cd = scsi_cd(rq->q->disk); 406 406 407 407 SCSI_LOG_HLQUEUE(1, scmd_printk(KERN_INFO, SCpnt, 408 408 "Doing sr request, block = %d\n", block));
+1 -1
drivers/scsi/virtio_scsi.c
··· 528 528 if (!rq || !scsi_prot_sg_count(sc)) 529 529 return; 530 530 531 - bi = blk_get_integrity(rq->rq_disk); 531 + bi = blk_get_integrity(rq->q->disk); 532 532 533 533 if (sc->sc_data_direction == DMA_TO_DEVICE) 534 534 cmd_pi->pi_bytesout = cpu_to_virtio32(vdev,
+1 -1
drivers/usb/storage/transport.c
··· 551 551 /* Did this command access the last sector? */ 552 552 sector = (srb->cmnd[2] << 24) | (srb->cmnd[3] << 16) | 553 553 (srb->cmnd[4] << 8) | (srb->cmnd[5]); 554 - disk = scsi_cmd_to_rq(srb)->rq_disk; 554 + disk = scsi_cmd_to_rq(srb)->q->disk; 555 555 if (!disk) 556 556 goto done; 557 557 sdkp = scsi_disk(disk);
-4
include/linux/blk-mq.h
··· 100 100 struct request *rq_next; 101 101 }; 102 102 103 - struct gendisk *rq_disk; 104 103 struct block_device *part; 105 104 #ifdef CONFIG_BLK_RQ_ALLOC_TIME 106 105 /* Time that the first bio started allocating this request. */ ··· 889 890 rq->__data_len = bio->bi_iter.bi_size; 890 891 rq->bio = rq->biotail = bio; 891 892 rq->ioprio = bio_prio(bio); 892 - 893 - if (bio->bi_bdev) 894 - rq->rq_disk = bio->bi_bdev->bd_disk; 895 893 } 896 894 897 895 void blk_mq_hctx_set_fq_lock_class(struct blk_mq_hw_ctx *hctx,
+1 -1
include/scsi/scsi_cmnd.h
··· 164 164 { 165 165 struct request *rq = scsi_cmd_to_rq(cmd); 166 166 167 - return *(struct scsi_driver **)rq->rq_disk->private_data; 167 + return *(struct scsi_driver **)rq->q->disk->private_data; 168 168 } 169 169 170 170 void scsi_done(struct scsi_cmnd *cmd);
+2 -2
include/scsi/scsi_device.h
··· 275 275 do { \ 276 276 struct request *__rq = scsi_cmd_to_rq((scmd)); \ 277 277 \ 278 - if (__rq->rq_disk) \ 278 + if (__rq->q->disk) \ 279 279 sdev_dbg((scmd)->device, "[%s] " fmt, \ 280 - __rq->rq_disk->disk_name, ##a); \ 280 + __rq->q->disk->disk_name, ##a); \ 281 281 else \ 282 282 sdev_dbg((scmd)->device, fmt, ##a); \ 283 283 } while (0)
+4 -4
include/trace/events/block.h
··· 85 85 ), 86 86 87 87 TP_fast_assign( 88 - __entry->dev = rq->rq_disk ? disk_devt(rq->rq_disk) : 0; 88 + __entry->dev = rq->q->disk ? disk_devt(rq->q->disk) : 0; 89 89 __entry->sector = blk_rq_trace_sector(rq); 90 90 __entry->nr_sector = blk_rq_trace_nr_sectors(rq); 91 91 ··· 128 128 ), 129 129 130 130 TP_fast_assign( 131 - __entry->dev = rq->rq_disk ? disk_devt(rq->rq_disk) : 0; 131 + __entry->dev = rq->q->disk ? disk_devt(rq->q->disk) : 0; 132 132 __entry->sector = blk_rq_pos(rq); 133 133 __entry->nr_sector = nr_bytes >> 9; 134 134 __entry->error = blk_status_to_errno(error); ··· 161 161 ), 162 162 163 163 TP_fast_assign( 164 - __entry->dev = rq->rq_disk ? disk_devt(rq->rq_disk) : 0; 164 + __entry->dev = rq->q->disk ? disk_devt(rq->q->disk) : 0; 165 165 __entry->sector = blk_rq_trace_sector(rq); 166 166 __entry->nr_sector = blk_rq_trace_nr_sectors(rq); 167 167 __entry->bytes = blk_rq_bytes(rq); ··· 512 512 ), 513 513 514 514 TP_fast_assign( 515 - __entry->dev = disk_devt(rq->rq_disk); 515 + __entry->dev = disk_devt(rq->q->disk); 516 516 __entry->sector = blk_rq_pos(rq); 517 517 __entry->nr_sector = blk_rq_sectors(rq); 518 518 __entry->old_dev = dev;
+1 -1
kernel/trace/blktrace.c
··· 1045 1045 } 1046 1046 1047 1047 r.device_from = cpu_to_be32(dev); 1048 - r.device_to = cpu_to_be32(disk_devt(rq->rq_disk)); 1048 + r.device_to = cpu_to_be32(disk_devt(rq->q->disk)); 1049 1049 r.sector_from = cpu_to_be64(from); 1050 1050 1051 1051 __blk_add_trace(bt, blk_rq_pos(rq), blk_rq_bytes(rq),