scsi: core: Add helper to return number of logical blocks in a request
authorMartin K. Petersen <martin.petersen@oracle.com>
Fri, 6 Aug 2021 04:00:19 +0000 (00:00 -0400)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 12 Aug 2021 02:25:43 +0000 (22:25 -0400)
Link: https://lore.kernel.org/r/20210806040023.5355-2-martin.petersen@oracle.com
Cc: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
include/scsi/scsi_cmnd.h

index ddc9671..6c5a1c1 100644 (file)
@@ -237,6 +237,13 @@ static inline sector_t scsi_get_lba(struct scsi_cmnd *scmd)
        return blk_rq_pos(scsi_cmd_to_rq(scmd)) >> shift;
 }
 
+static inline unsigned int scsi_logical_block_count(struct scsi_cmnd *scmd)
+{
+       unsigned int shift = ilog2(scmd->device->sector_size) - SECTOR_SHIFT;
+
+       return blk_rq_bytes(scsi_cmd_to_rq(scmd)) >> shift;
+}
+
 /*
  * The operations below are hints that tell the controller driver how
  * to handle I/Os with DIF or similar types of protection information.