Skip to content

Commit 5d0a85b

Browse files
Al Virokawasaki
authored andcommitted
scsi: switch scsi_bios_ptable() and scsi_partsize() to gendisk
Both helpers are reading the partition table of the disk specified by block_device of some partition on it; result depends only upon the disk in question, so we might as well pass the struct gendisk instead. Signed-off-by: Al Viro <[email protected]>
1 parent b39b4d5 commit 5d0a85b

File tree

10 files changed

+18
-17
lines changed

10 files changed

+18
-17
lines changed

Documentation/scsi/scsi_mid_low_api.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ Details::
380380

381381
/**
382382
* scsi_bios_ptable - return copy of block device's partition table
383-
* @dev: pointer to block device
383+
* @dev: pointer to gendisk
384384
*
385385
* Returns pointer to partition table, or NULL for failure
386386
*
@@ -390,7 +390,7 @@ Details::
390390
*
391391
* Defined in: drivers/scsi/scsicam.c
392392
**/
393-
unsigned char *scsi_bios_ptable(struct block_device *dev)
393+
unsigned char *scsi_bios_ptable(struct gendisk *dev)
394394

395395

396396
/**

drivers/scsi/BusLogic.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3261,7 +3261,7 @@ static int blogic_diskparam(struct scsi_device *sdev, struct block_device *dev,
32613261
diskparam->sectors = 32;
32623262
}
32633263
diskparam->cylinders = (unsigned long) capacity / (diskparam->heads * diskparam->sectors);
3264-
buf = scsi_bios_ptable(dev);
3264+
buf = scsi_bios_ptable(dev->bd_disk);
32653265
if (buf == NULL)
32663266
return 0;
32673267
/*

drivers/scsi/aacraid/linit.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ static int aac_biosparm(struct scsi_device *sdev, struct block_device *bdev,
324324
* entry whose end_head matches one of the standard geometry
325325
* translations ( 64/32, 128/32, 255/63 ).
326326
*/
327-
buf = scsi_bios_ptable(bdev);
327+
buf = scsi_bios_ptable(bdev->bd_disk);
328328
if (!buf)
329329
return 0;
330330
if (*(__le16 *)(buf + 0x40) == cpu_to_le16(MSDOS_LABEL_MAGIC)) {

drivers/scsi/aic7xxx/aic79xx_osm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -731,7 +731,7 @@ ahd_linux_biosparam(struct scsi_device *sdev, struct block_device *bdev,
731731

732732
ahd = *((struct ahd_softc **)sdev->host->hostdata);
733733

734-
if (scsi_partsize(bdev, capacity, geom))
734+
if (scsi_partsize(bdev->bd_disk, capacity, geom))
735735
return 0;
736736

737737
heads = 64;

drivers/scsi/aic7xxx/aic7xxx_osm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -696,7 +696,7 @@ ahc_linux_biosparam(struct scsi_device *sdev, struct block_device *bdev,
696696
ahc = *((struct ahc_softc **)sdev->host->hostdata);
697697
channel = sdev_channel(sdev);
698698

699-
if (scsi_partsize(bdev, capacity, geom))
699+
if (scsi_partsize(bdev->bd_disk, capacity, geom))
700700
return 0;
701701

702702
heads = 64;

drivers/scsi/arcmsr/arcmsr_hba.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ static int arcmsr_bios_param(struct scsi_device *sdev,
381381
{
382382
int heads, sectors, cylinders, total_capacity;
383383

384-
if (scsi_partsize(bdev, capacity, geom))
384+
if (scsi_partsize(bdev->bd_disk, capacity, geom))
385385
return 0;
386386

387387
total_capacity = capacity;

drivers/scsi/fdomain.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ static int fdomain_biosparam(struct scsi_device *sdev,
472472
struct block_device *bdev, sector_t capacity,
473473
int geom[])
474474
{
475-
unsigned char *p = scsi_bios_ptable(bdev);
475+
unsigned char *p = scsi_bios_ptable(bdev->bd_disk);
476476

477477
if (p && p[65] == 0xaa && p[64] == 0x55 /* Partition table valid */
478478
&& p[4]) { /* Partition type */

drivers/scsi/megaraid.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2813,7 +2813,7 @@ megaraid_biosparam(struct scsi_device *sdev, struct block_device *bdev,
28132813
geom[2] = cylinders;
28142814
}
28152815
else {
2816-
if (scsi_partsize(bdev, capacity, geom))
2816+
if (scsi_partsize(bdev->bd_disk, capacity, geom))
28172817
return 0;
28182818

28192819
dev_info(&adapter->dev->dev,

drivers/scsi/scsicam.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@
3030
* starting at offset %0x1be.
3131
* Returns: partition table in kmalloc(GFP_KERNEL) memory, or NULL on error.
3232
*/
33-
unsigned char *scsi_bios_ptable(struct block_device *dev)
33+
unsigned char *scsi_bios_ptable(struct gendisk *dev)
3434
{
35-
struct address_space *mapping = bdev_whole(dev)->bd_mapping;
35+
struct address_space *mapping = dev->part0->bd_mapping;
3636
unsigned char *res = NULL;
3737
struct folio *folio;
3838

@@ -48,7 +48,7 @@ EXPORT_SYMBOL(scsi_bios_ptable);
4848

4949
/**
5050
* scsi_partsize - Parse cylinders/heads/sectors from PC partition table
51-
* @bdev: block device to parse
51+
* @disk: gendisk of the disk to parse
5252
* @capacity: size of the disk in sectors
5353
* @geom: output in form of [hds, cylinders, sectors]
5454
*
@@ -57,15 +57,15 @@ EXPORT_SYMBOL(scsi_bios_ptable);
5757
*
5858
* Returns: %false on failure, %true on success.
5959
*/
60-
bool scsi_partsize(struct block_device *bdev, sector_t capacity, int geom[3])
60+
bool scsi_partsize(struct gendisk *disk, sector_t capacity, int geom[3])
6161
{
6262
int cyl, ext_cyl, end_head, end_cyl, end_sector;
6363
unsigned int logical_end, physical_end, ext_physical_end;
6464
struct msdos_partition *p, *largest = NULL;
6565
void *buf;
6666
int ret = false;
6767

68-
buf = scsi_bios_ptable(bdev);
68+
buf = scsi_bios_ptable(disk);
6969
if (!buf)
7070
return false;
7171

@@ -221,7 +221,7 @@ int scsicam_bios_param(struct block_device *bdev, sector_t capacity, int *ip)
221221
int ret = 0;
222222

223223
/* try to infer mapping from partition table */
224-
if (scsi_partsize(bdev, capacity, ip))
224+
if (scsi_partsize(bdev->bd_disk, capacity, ip))
225225
return 0;
226226

227227
if (capacity64 < (1ULL << 32)) {

include/scsi/scsicam.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313

1414
#ifndef SCSICAM_H
1515
#define SCSICAM_H
16+
struct gendisk;
1617
int scsicam_bios_param(struct block_device *bdev, sector_t capacity, int *ip);
17-
bool scsi_partsize(struct block_device *bdev, sector_t capacity, int geom[3]);
18-
unsigned char *scsi_bios_ptable(struct block_device *bdev);
18+
bool scsi_partsize(struct gendisk *disk, sector_t capacity, int geom[3]);
19+
unsigned char *scsi_bios_ptable(struct gendisk *disk);
1920
#endif /* def SCSICAM_H */

0 commit comments

Comments
 (0)