mirror of https://github.com/torvalds/linux.git
switching ->getgeo() from struct block_device to struct gendisk
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQQqUNBr3gm4hGXdBJlZ7Krx/gZQ6wUCaLifHQAKCRBZ7Krx/gZQ 64qlAPsGU9cVg8tVcbbuf767MXyuQZkUPeA5AWnSkm0jfQzaKAEAmsF4+KsjOFRR EmdjHBlN5kk6a0TWzXcADlieJ/ccNA4= =Tr1Q -----END PGP SIGNATURE----- Merge tag 'pull-getgeo' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs into for-6.18/block Pull struct block_device getgeo changes from Al. "switching ->getgeo() from struct block_device to struct gendisk Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>" * tag 'pull-getgeo' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: block: switch ->getgeo() to struct gendisk scsi: switch ->bios_param() to passing gendisk scsi: switch scsi_bios_ptable() and scsi_partsize() to gendisk
This commit is contained in:
commit
4dbe13c784
|
|
@ -443,7 +443,7 @@ prototypes::
|
|||
int (*direct_access) (struct block_device *, sector_t, void **,
|
||||
unsigned long *);
|
||||
void (*unlock_native_capacity) (struct gendisk *);
|
||||
int (*getgeo)(struct block_device *, struct hd_geometry *);
|
||||
int (*getgeo)(struct gendisk *, struct hd_geometry *);
|
||||
void (*swap_slot_free_notify) (struct block_device *, unsigned long);
|
||||
|
||||
locking rules:
|
||||
|
|
|
|||
|
|
@ -380,7 +380,7 @@ Details::
|
|||
|
||||
/**
|
||||
* scsi_bios_ptable - return copy of block device's partition table
|
||||
* @dev: pointer to block device
|
||||
* @dev: pointer to gendisk
|
||||
*
|
||||
* Returns pointer to partition table, or NULL for failure
|
||||
*
|
||||
|
|
@ -390,7 +390,7 @@ Details::
|
|||
*
|
||||
* Defined in: drivers/scsi/scsicam.c
|
||||
**/
|
||||
unsigned char *scsi_bios_ptable(struct block_device *dev)
|
||||
unsigned char *scsi_bios_ptable(struct gendisk *dev)
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -623,7 +623,7 @@ Details::
|
|||
* bios_param - fetch head, sector, cylinder info for a disk
|
||||
* @sdev: pointer to scsi device context (defined in
|
||||
* include/scsi/scsi_device.h)
|
||||
* @bdev: pointer to block device context (defined in fs.h)
|
||||
* @disk: pointer to gendisk (defined in blkdev.h)
|
||||
* @capacity: device size (in 512 byte sectors)
|
||||
* @params: three element array to place output:
|
||||
* params[0] number of heads (max 255)
|
||||
|
|
@ -643,7 +643,7 @@ Details::
|
|||
*
|
||||
* Optionally defined in: LLD
|
||||
**/
|
||||
int bios_param(struct scsi_device * sdev, struct block_device *bdev,
|
||||
int bios_param(struct scsi_device * sdev, struct gendisk *disk,
|
||||
sector_t capacity, int params[3])
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -77,9 +77,9 @@ static void nfhd_submit_bio(struct bio *bio)
|
|||
bio_endio(bio);
|
||||
}
|
||||
|
||||
static int nfhd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
||||
static int nfhd_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
struct nfhd_device *dev = bdev->bd_disk->private_data;
|
||||
struct nfhd_device *dev = disk->private_data;
|
||||
|
||||
geo->cylinders = dev->blocks >> (6 - dev->bshift);
|
||||
geo->heads = 4;
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ static DEFINE_MUTEX(ubd_lock);
|
|||
|
||||
static int ubd_ioctl(struct block_device *bdev, blk_mode_t mode,
|
||||
unsigned int cmd, unsigned long arg);
|
||||
static int ubd_getgeo(struct block_device *bdev, struct hd_geometry *geo);
|
||||
static int ubd_getgeo(struct gendisk *disk, struct hd_geometry *geo);
|
||||
|
||||
#define MAX_DEV (16)
|
||||
|
||||
|
|
@ -1324,9 +1324,9 @@ static blk_status_t ubd_queue_rq(struct blk_mq_hw_ctx *hctx,
|
|||
return res;
|
||||
}
|
||||
|
||||
static int ubd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
||||
static int ubd_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
struct ubd *ubd_dev = bdev->bd_disk->private_data;
|
||||
struct ubd *ubd_dev = disk->private_data;
|
||||
|
||||
geo->heads = 128;
|
||||
geo->sectors = 32;
|
||||
|
|
|
|||
|
|
@ -481,7 +481,7 @@ static int blkdev_getgeo(struct block_device *bdev,
|
|||
*/
|
||||
memset(&geo, 0, sizeof(geo));
|
||||
geo.start = get_start_sect(bdev);
|
||||
ret = disk->fops->getgeo(bdev, &geo);
|
||||
ret = disk->fops->getgeo(disk, &geo);
|
||||
if (ret)
|
||||
return ret;
|
||||
if (copy_to_user(argp, &geo, sizeof(geo)))
|
||||
|
|
@ -515,7 +515,7 @@ static int compat_hdio_getgeo(struct block_device *bdev,
|
|||
* want to override it.
|
||||
*/
|
||||
geo.start = get_start_sect(bdev);
|
||||
ret = disk->fops->getgeo(bdev, &geo);
|
||||
ret = disk->fops->getgeo(disk, &geo);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
|
|
|||
|
|
@ -358,7 +358,7 @@ int ibm_partition(struct parsed_partitions *state)
|
|||
goto out_nolab;
|
||||
/* set start if not filled by getgeo function e.g. virtblk */
|
||||
geo->start = get_start_sect(bdev);
|
||||
if (disk->fops->getgeo(bdev, geo))
|
||||
if (disk->fops->getgeo(disk, geo))
|
||||
goto out_freeall;
|
||||
if (!fn || fn(disk, info)) {
|
||||
kfree(info);
|
||||
|
|
|
|||
|
|
@ -351,7 +351,7 @@ EXPORT_SYMBOL_GPL(ata_common_sdev_groups);
|
|||
/**
|
||||
* ata_std_bios_param - generic bios head/sector/cylinder calculator used by sd.
|
||||
* @sdev: SCSI device for which BIOS geometry is to be determined
|
||||
* @bdev: block device associated with @sdev
|
||||
* @unused: gendisk associated with @sdev
|
||||
* @capacity: capacity of SCSI device
|
||||
* @geom: location to which geometry will be output
|
||||
*
|
||||
|
|
@ -366,7 +366,7 @@ EXPORT_SYMBOL_GPL(ata_common_sdev_groups);
|
|||
* RETURNS:
|
||||
* Zero.
|
||||
*/
|
||||
int ata_std_bios_param(struct scsi_device *sdev, struct block_device *bdev,
|
||||
int ata_std_bios_param(struct scsi_device *sdev, struct gendisk *unused,
|
||||
sector_t capacity, int geom[])
|
||||
{
|
||||
geom[0] = 255;
|
||||
|
|
|
|||
|
|
@ -1523,13 +1523,13 @@ static blk_status_t amiflop_queue_rq(struct blk_mq_hw_ctx *hctx,
|
|||
return BLK_STS_OK;
|
||||
}
|
||||
|
||||
static int fd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
||||
static int fd_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
int drive = MINOR(bdev->bd_dev) & 3;
|
||||
struct amiga_floppy_struct *p = disk->private_data;
|
||||
|
||||
geo->heads = unit[drive].type->heads;
|
||||
geo->sectors = unit[drive].dtype->sects * unit[drive].type->sect_mult;
|
||||
geo->cylinders = unit[drive].type->tracks;
|
||||
geo->heads = p->type->heads;
|
||||
geo->sectors = p->dtype->sects * p->type->sect_mult;
|
||||
geo->cylinders = p->type->tracks;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -269,9 +269,9 @@ static blk_status_t aoeblk_queue_rq(struct blk_mq_hw_ctx *hctx,
|
|||
}
|
||||
|
||||
static int
|
||||
aoeblk_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
||||
aoeblk_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
struct aoedev *d = bdev->bd_disk->private_data;
|
||||
struct aoedev *d = disk->private_data;
|
||||
|
||||
if ((d->flags & DEVFL_UP) == 0) {
|
||||
printk(KERN_ERR "aoe: disk not up\n");
|
||||
|
|
|
|||
|
|
@ -3361,9 +3361,9 @@ static int get_floppy_geometry(int drive, int type, struct floppy_struct **g)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int fd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
||||
static int fd_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
int drive = (long)bdev->bd_disk->private_data;
|
||||
int drive = (long)disk->private_data;
|
||||
int type = ITYPE(drive_state[drive].fd_device);
|
||||
struct floppy_struct *g;
|
||||
int ret;
|
||||
|
|
|
|||
|
|
@ -3148,17 +3148,17 @@ static int mtip_block_compat_ioctl(struct block_device *dev,
|
|||
* that each partition is also 4KB aligned. Non-aligned partitions adversely
|
||||
* affects performance.
|
||||
*
|
||||
* @dev Pointer to the block_device strucutre.
|
||||
* @disk Pointer to the gendisk strucutre.
|
||||
* @geo Pointer to a hd_geometry structure.
|
||||
*
|
||||
* return value
|
||||
* 0 Operation completed successfully.
|
||||
* -ENOTTY An error occurred while reading the drive capacity.
|
||||
*/
|
||||
static int mtip_block_getgeo(struct block_device *dev,
|
||||
static int mtip_block_getgeo(struct gendisk *disk,
|
||||
struct hd_geometry *geo)
|
||||
{
|
||||
struct driver_data *dd = dev->bd_disk->private_data;
|
||||
struct driver_data *dd = disk->private_data;
|
||||
sector_t capacity;
|
||||
|
||||
if (!dd)
|
||||
|
|
|
|||
|
|
@ -942,11 +942,11 @@ static void rnbd_client_release(struct gendisk *gen)
|
|||
rnbd_clt_put_dev(dev);
|
||||
}
|
||||
|
||||
static int rnbd_client_getgeo(struct block_device *block_device,
|
||||
static int rnbd_client_getgeo(struct gendisk *disk,
|
||||
struct hd_geometry *geo)
|
||||
{
|
||||
u64 size;
|
||||
struct rnbd_clt_dev *dev = block_device->bd_disk->private_data;
|
||||
struct rnbd_clt_dev *dev = disk->private_data;
|
||||
struct queue_limits *limit = &dev->queue->limits;
|
||||
|
||||
size = dev->size * (limit->logical_block_size / SECTOR_SIZE);
|
||||
|
|
|
|||
|
|
@ -119,9 +119,8 @@ static inline u32 vdc_tx_dring_avail(struct vio_dring_state *dr)
|
|||
return vio_dring_avail(dr, VDC_TX_RING_SIZE);
|
||||
}
|
||||
|
||||
static int vdc_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
||||
static int vdc_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
struct gendisk *disk = bdev->bd_disk;
|
||||
sector_t nsect = get_capacity(disk);
|
||||
sector_t cylinders = nsect;
|
||||
|
||||
|
|
|
|||
|
|
@ -711,9 +711,9 @@ static int floppy_ioctl(struct block_device *bdev, blk_mode_t mode,
|
|||
return -ENOTTY;
|
||||
}
|
||||
|
||||
static int floppy_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
||||
static int floppy_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
struct floppy_state *fs = bdev->bd_disk->private_data;
|
||||
struct floppy_state *fs = disk->private_data;
|
||||
struct floppy_struct *g;
|
||||
int ret;
|
||||
|
||||
|
|
|
|||
|
|
@ -829,9 +829,9 @@ static int virtblk_get_id(struct gendisk *disk, char *id_str)
|
|||
}
|
||||
|
||||
/* We provide getgeo only to please some old bootloader/partitioning tools */
|
||||
static int virtblk_getgeo(struct block_device *bd, struct hd_geometry *geo)
|
||||
static int virtblk_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
struct virtio_blk *vblk = bd->bd_disk->private_data;
|
||||
struct virtio_blk *vblk = disk->private_data;
|
||||
int ret = 0;
|
||||
|
||||
mutex_lock(&vblk->vdev_mutex);
|
||||
|
|
@ -853,7 +853,7 @@ static int virtblk_getgeo(struct block_device *bd, struct hd_geometry *geo)
|
|||
/* some standard values, similar to sd */
|
||||
geo->heads = 1 << 6;
|
||||
geo->sectors = 1 << 5;
|
||||
geo->cylinders = get_capacity(bd->bd_disk) >> 11;
|
||||
geo->cylinders = get_capacity(disk) >> 11;
|
||||
}
|
||||
out:
|
||||
mutex_unlock(&vblk->vdev_mutex);
|
||||
|
|
|
|||
|
|
@ -493,11 +493,11 @@ static void blkif_restart_queue_callback(void *arg)
|
|||
schedule_work(&rinfo->work);
|
||||
}
|
||||
|
||||
static int blkif_getgeo(struct block_device *bd, struct hd_geometry *hg)
|
||||
static int blkif_getgeo(struct gendisk *disk, struct hd_geometry *hg)
|
||||
{
|
||||
/* We don't have real geometry info, but let's at least return
|
||||
values consistent with the size of the device */
|
||||
sector_t nsect = get_capacity(bd->bd_disk);
|
||||
sector_t nsect = get_capacity(disk);
|
||||
sector_t cylinders = nsect;
|
||||
|
||||
hg->heads = 0xff;
|
||||
|
|
|
|||
|
|
@ -403,9 +403,9 @@ static void do_deferred_remove(struct work_struct *w)
|
|||
dm_deferred_remove();
|
||||
}
|
||||
|
||||
static int dm_blk_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
||||
static int dm_blk_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
struct mapped_device *md = bdev->bd_disk->private_data;
|
||||
struct mapped_device *md = disk->private_data;
|
||||
|
||||
return dm_get_geometry(md, geo);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7747,9 +7747,9 @@ static int set_disk_faulty(struct mddev *mddev, dev_t dev)
|
|||
* 4 sectors (with a BIG number of cylinders...). This drives
|
||||
* dosfs just mad... ;-)
|
||||
*/
|
||||
static int md_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
||||
static int md_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
struct mddev *mddev = bdev->bd_disk->private_data;
|
||||
struct mddev *mddev = disk->private_data;
|
||||
|
||||
geo->heads = 2;
|
||||
geo->sectors = 4;
|
||||
|
|
|
|||
|
|
@ -1953,10 +1953,10 @@ static void msb_data_clear(struct msb_data *msb)
|
|||
msb->card = NULL;
|
||||
}
|
||||
|
||||
static int msb_bd_getgeo(struct block_device *bdev,
|
||||
static int msb_bd_getgeo(struct gendisk *disk,
|
||||
struct hd_geometry *geo)
|
||||
{
|
||||
struct msb_data *msb = bdev->bd_disk->private_data;
|
||||
struct msb_data *msb = disk->private_data;
|
||||
*geo = msb->geometry;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -189,10 +189,10 @@ static void mspro_block_bd_free_disk(struct gendisk *disk)
|
|||
kfree(msb);
|
||||
}
|
||||
|
||||
static int mspro_block_bd_getgeo(struct block_device *bdev,
|
||||
static int mspro_block_bd_getgeo(struct gendisk *disk,
|
||||
struct hd_geometry *geo)
|
||||
{
|
||||
struct mspro_block_data *msb = bdev->bd_disk->private_data;
|
||||
struct mspro_block_data *msb = disk->private_data;
|
||||
|
||||
geo->heads = msb->heads;
|
||||
geo->sectors = msb->sectors_per_track;
|
||||
|
|
|
|||
|
|
@ -2074,7 +2074,7 @@ mptscsih_taskmgmt_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf,
|
|||
* This is anyones guess quite frankly.
|
||||
*/
|
||||
int
|
||||
mptscsih_bios_param(struct scsi_device * sdev, struct block_device *bdev,
|
||||
mptscsih_bios_param(struct scsi_device * sdev, struct gendisk *unused,
|
||||
sector_t capacity, int geom[])
|
||||
{
|
||||
int heads;
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ extern int mptscsih_abort(struct scsi_cmnd * SCpnt);
|
|||
extern int mptscsih_dev_reset(struct scsi_cmnd * SCpnt);
|
||||
extern int mptscsih_bus_reset(struct scsi_cmnd * SCpnt);
|
||||
extern int mptscsih_host_reset(struct scsi_cmnd *SCpnt);
|
||||
extern int mptscsih_bios_param(struct scsi_device * sdev, struct block_device *bdev, sector_t capacity, int geom[]);
|
||||
extern int mptscsih_bios_param(struct scsi_device * sdev, struct gendisk *unused, sector_t capacity, int geom[]);
|
||||
extern int mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r);
|
||||
extern int mptscsih_taskmgmt_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r);
|
||||
extern int mptscsih_scandv_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r);
|
||||
|
|
|
|||
|
|
@ -435,9 +435,9 @@ static void mmc_blk_release(struct gendisk *disk)
|
|||
}
|
||||
|
||||
static int
|
||||
mmc_blk_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
||||
mmc_blk_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
geo->cylinders = get_capacity(bdev->bd_disk) / (4 * 16);
|
||||
geo->cylinders = get_capacity(disk) / (4 * 16);
|
||||
geo->heads = 4;
|
||||
geo->sectors = 16;
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -246,9 +246,9 @@ static void blktrans_release(struct gendisk *disk)
|
|||
blktrans_dev_put(dev);
|
||||
}
|
||||
|
||||
static int blktrans_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
||||
static int blktrans_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
struct mtd_blktrans_dev *dev = bdev->bd_disk->private_data;
|
||||
struct mtd_blktrans_dev *dev = disk->private_data;
|
||||
int ret = -ENXIO;
|
||||
|
||||
mutex_lock(&dev->lock);
|
||||
|
|
|
|||
|
|
@ -282,12 +282,12 @@ static void ubiblock_release(struct gendisk *gd)
|
|||
mutex_unlock(&dev->dev_mutex);
|
||||
}
|
||||
|
||||
static int ubiblock_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
||||
static int ubiblock_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
/* Some tools might require this information */
|
||||
geo->heads = 1;
|
||||
geo->cylinders = 1;
|
||||
geo->sectors = get_capacity(bdev->bd_disk);
|
||||
geo->sectors = get_capacity(disk);
|
||||
geo->start = 0;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1478,12 +1478,12 @@ static void btt_submit_bio(struct bio *bio)
|
|||
bio_endio(bio);
|
||||
}
|
||||
|
||||
static int btt_getgeo(struct block_device *bd, struct hd_geometry *geo)
|
||||
static int btt_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
/* some standard values */
|
||||
geo->heads = 1 << 6;
|
||||
geo->sectors = 1 << 5;
|
||||
geo->cylinders = get_capacity(bd->bd_disk) >> 11;
|
||||
geo->cylinders = get_capacity(disk) >> 11;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1803,12 +1803,12 @@ static void nvme_release(struct gendisk *disk)
|
|||
nvme_ns_release(disk->private_data);
|
||||
}
|
||||
|
||||
int nvme_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
||||
int nvme_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
/* some standard values */
|
||||
geo->heads = 1 << 6;
|
||||
geo->sectors = 1 << 5;
|
||||
geo->cylinders = get_capacity(bdev->bd_disk) >> 11;
|
||||
geo->cylinders = get_capacity(disk) >> 11;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -936,7 +936,7 @@ int nvme_ns_head_chr_uring_cmd(struct io_uring_cmd *ioucmd,
|
|||
unsigned int issue_flags);
|
||||
int nvme_identify_ns(struct nvme_ctrl *ctrl, unsigned nsid,
|
||||
struct nvme_id_ns **id);
|
||||
int nvme_getgeo(struct block_device *bdev, struct hd_geometry *geo);
|
||||
int nvme_getgeo(struct gendisk *disk, struct hd_geometry *geo);
|
||||
int nvme_dev_uring_cmd(struct io_uring_cmd *ioucmd, unsigned int issue_flags);
|
||||
|
||||
extern const struct attribute_group *nvme_ns_attr_groups[];
|
||||
|
|
|
|||
|
|
@ -3317,11 +3317,11 @@ static void dasd_release(struct gendisk *disk)
|
|||
/*
|
||||
* Return disk geometry.
|
||||
*/
|
||||
static int dasd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
||||
static int dasd_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
struct dasd_device *base;
|
||||
|
||||
base = dasd_device_from_gendisk(bdev->bd_disk);
|
||||
base = dasd_device_from_gendisk(disk);
|
||||
if (!base)
|
||||
return -ENODEV;
|
||||
|
||||
|
|
@ -3331,7 +3331,8 @@ static int dasd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
|||
return -EINVAL;
|
||||
}
|
||||
base->discipline->fill_geometry(base->block, geo);
|
||||
geo->start = get_start_sect(bdev) >> base->block->s2b_shift;
|
||||
// geo->start is left unchanged by the above
|
||||
geo->start >>= base->block->s2b_shift;
|
||||
dasd_put_device(base);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1695,7 +1695,7 @@ static int twa_reset_sequence(TW_Device_Extension *tw_dev, int soft_reset)
|
|||
} /* End twa_reset_sequence() */
|
||||
|
||||
/* This funciton returns unit geometry in cylinders/heads/sectors */
|
||||
static int twa_scsi_biosparam(struct scsi_device *sdev, struct block_device *bdev, sector_t capacity, int geom[])
|
||||
static int twa_scsi_biosparam(struct scsi_device *sdev, struct gendisk *unused, sector_t capacity, int geom[])
|
||||
{
|
||||
int heads, sectors, cylinders;
|
||||
|
||||
|
|
|
|||
|
|
@ -1404,7 +1404,7 @@ static int twl_reset_device_extension(TW_Device_Extension *tw_dev, int ioctl_res
|
|||
} /* End twl_reset_device_extension() */
|
||||
|
||||
/* This funciton returns unit geometry in cylinders/heads/sectors */
|
||||
static int twl_scsi_biosparam(struct scsi_device *sdev, struct block_device *bdev, sector_t capacity, int geom[])
|
||||
static int twl_scsi_biosparam(struct scsi_device *sdev, struct gendisk *unused, sector_t capacity, int geom[])
|
||||
{
|
||||
int heads, sectors;
|
||||
|
||||
|
|
|
|||
|
|
@ -1340,7 +1340,7 @@ static int tw_reset_device_extension(TW_Device_Extension *tw_dev)
|
|||
} /* End tw_reset_device_extension() */
|
||||
|
||||
/* This funciton returns unit geometry in cylinders/heads/sectors */
|
||||
static int tw_scsi_biosparam(struct scsi_device *sdev, struct block_device *bdev,
|
||||
static int tw_scsi_biosparam(struct scsi_device *sdev, struct gendisk *unused,
|
||||
sector_t capacity, int geom[])
|
||||
{
|
||||
int heads, sectors, cylinders;
|
||||
|
|
|
|||
|
|
@ -3240,7 +3240,7 @@ static int blogic_resetadapter(struct blogic_adapter *adapter, bool hard_reset)
|
|||
the BIOS, and a warning may be displayed.
|
||||
*/
|
||||
|
||||
static int blogic_diskparam(struct scsi_device *sdev, struct block_device *dev,
|
||||
static int blogic_diskparam(struct scsi_device *sdev, struct gendisk *disk,
|
||||
sector_t capacity, int *params)
|
||||
{
|
||||
struct blogic_adapter *adapter =
|
||||
|
|
@ -3261,7 +3261,7 @@ static int blogic_diskparam(struct scsi_device *sdev, struct block_device *dev,
|
|||
diskparam->sectors = 32;
|
||||
}
|
||||
diskparam->cylinders = (unsigned long) capacity / (diskparam->heads * diskparam->sectors);
|
||||
buf = scsi_bios_ptable(dev);
|
||||
buf = scsi_bios_ptable(disk);
|
||||
if (buf == NULL)
|
||||
return 0;
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -1273,7 +1273,7 @@ static inline void blogic_incszbucket(unsigned int *cmdsz_buckets,
|
|||
|
||||
static const char *blogic_drvr_info(struct Scsi_Host *);
|
||||
static int blogic_qcmd(struct Scsi_Host *h, struct scsi_cmnd *);
|
||||
static int blogic_diskparam(struct scsi_device *, struct block_device *, sector_t, int *);
|
||||
static int blogic_diskparam(struct scsi_device *, struct gendisk *, sector_t, int *);
|
||||
static int blogic_sdev_configure(struct scsi_device *,
|
||||
struct queue_limits *lim);
|
||||
static void blogic_qcompleted_ccb(struct blogic_ccb *);
|
||||
|
|
|
|||
|
|
@ -273,7 +273,7 @@ struct aac_driver_ident* aac_get_driver_ident(int devtype)
|
|||
/**
|
||||
* aac_biosparm - return BIOS parameters for disk
|
||||
* @sdev: The scsi device corresponding to the disk
|
||||
* @bdev: the block device corresponding to the disk
|
||||
* @disk: the gendisk corresponding to the disk
|
||||
* @capacity: the sector capacity of the disk
|
||||
* @geom: geometry block to fill in
|
||||
*
|
||||
|
|
@ -292,7 +292,7 @@ struct aac_driver_ident* aac_get_driver_ident(int devtype)
|
|||
* be displayed.
|
||||
*/
|
||||
|
||||
static int aac_biosparm(struct scsi_device *sdev, struct block_device *bdev,
|
||||
static int aac_biosparm(struct scsi_device *sdev, struct gendisk *disk,
|
||||
sector_t capacity, int *geom)
|
||||
{
|
||||
struct diskparm *param = (struct diskparm *)geom;
|
||||
|
|
@ -324,7 +324,7 @@ static int aac_biosparm(struct scsi_device *sdev, struct block_device *bdev,
|
|||
* entry whose end_head matches one of the standard geometry
|
||||
* translations ( 64/32, 128/32, 255/63 ).
|
||||
*/
|
||||
buf = scsi_bios_ptable(bdev);
|
||||
buf = scsi_bios_ptable(disk);
|
||||
if (!buf)
|
||||
return 0;
|
||||
if (*(__le16 *)(buf + 0x40) == cpu_to_le16(MSDOS_LABEL_MAGIC)) {
|
||||
|
|
|
|||
|
|
@ -7096,7 +7096,7 @@ static int advansys_reset(struct scsi_cmnd *scp)
|
|||
* ip[2]: cylinders
|
||||
*/
|
||||
static int
|
||||
advansys_biosparam(struct scsi_device *sdev, struct block_device *bdev,
|
||||
advansys_biosparam(struct scsi_device *sdev, struct gendisk *unused,
|
||||
sector_t capacity, int ip[])
|
||||
{
|
||||
struct asc_board *boardp = shost_priv(sdev->host);
|
||||
|
|
|
|||
|
|
@ -1246,7 +1246,7 @@ int aha152x_host_reset_host(struct Scsi_Host *shpnt)
|
|||
* Return the "logical geometry"
|
||||
*
|
||||
*/
|
||||
static int aha152x_biosparam(struct scsi_device *sdev, struct block_device *bdev,
|
||||
static int aha152x_biosparam(struct scsi_device *sdev, struct gendisk *disk,
|
||||
sector_t capacity, int *info_array)
|
||||
{
|
||||
struct Scsi_Host *shpnt = sdev->host;
|
||||
|
|
@ -1261,7 +1261,7 @@ static int aha152x_biosparam(struct scsi_device *sdev, struct block_device *bdev
|
|||
int info[3];
|
||||
|
||||
/* try to figure out the geometry from the partition table */
|
||||
if (scsicam_bios_param(bdev, capacity, info) < 0 ||
|
||||
if (scsicam_bios_param(disk, capacity, info) < 0 ||
|
||||
!((info[0] == 64 && info[1] == 32) || (info[0] == 255 && info[1] == 63))) {
|
||||
if (EXT_TRANS) {
|
||||
printk(KERN_NOTICE
|
||||
|
|
|
|||
|
|
@ -992,7 +992,7 @@ static int aha1542_host_reset(struct scsi_cmnd *cmd)
|
|||
}
|
||||
|
||||
static int aha1542_biosparam(struct scsi_device *sdev,
|
||||
struct block_device *bdev, sector_t capacity, int geom[])
|
||||
struct gendisk *unused, sector_t capacity, int geom[])
|
||||
{
|
||||
struct aha1542_hostdata *aha1542 = shost_priv(sdev->host);
|
||||
|
||||
|
|
|
|||
|
|
@ -510,7 +510,7 @@ static void aha1740_getconfig(unsigned int base, unsigned int *irq_level,
|
|||
}
|
||||
|
||||
static int aha1740_biosparam(struct scsi_device *sdev,
|
||||
struct block_device *dev,
|
||||
struct gendisk *unused,
|
||||
sector_t capacity, int* ip)
|
||||
{
|
||||
int size = capacity;
|
||||
|
|
|
|||
|
|
@ -720,7 +720,7 @@ ahd_linux_sdev_configure(struct scsi_device *sdev, struct queue_limits *lim)
|
|||
* Return the disk geometry for the given SCSI device.
|
||||
*/
|
||||
static int
|
||||
ahd_linux_biosparam(struct scsi_device *sdev, struct block_device *bdev,
|
||||
ahd_linux_biosparam(struct scsi_device *sdev, struct gendisk *disk,
|
||||
sector_t capacity, int geom[])
|
||||
{
|
||||
int heads;
|
||||
|
|
@ -731,7 +731,7 @@ ahd_linux_biosparam(struct scsi_device *sdev, struct block_device *bdev,
|
|||
|
||||
ahd = *((struct ahd_softc **)sdev->host->hostdata);
|
||||
|
||||
if (scsi_partsize(bdev, capacity, geom))
|
||||
if (scsi_partsize(disk, capacity, geom))
|
||||
return 0;
|
||||
|
||||
heads = 64;
|
||||
|
|
|
|||
|
|
@ -683,7 +683,7 @@ ahc_linux_sdev_configure(struct scsi_device *sdev, struct queue_limits *lim)
|
|||
* Return the disk geometry for the given SCSI device.
|
||||
*/
|
||||
static int
|
||||
ahc_linux_biosparam(struct scsi_device *sdev, struct block_device *bdev,
|
||||
ahc_linux_biosparam(struct scsi_device *sdev, struct gendisk *disk,
|
||||
sector_t capacity, int geom[])
|
||||
{
|
||||
int heads;
|
||||
|
|
@ -696,7 +696,7 @@ ahc_linux_biosparam(struct scsi_device *sdev, struct block_device *bdev,
|
|||
ahc = *((struct ahc_softc **)sdev->host->hostdata);
|
||||
channel = sdev_channel(sdev);
|
||||
|
||||
if (scsi_partsize(bdev, capacity, geom))
|
||||
if (scsi_partsize(disk, capacity, geom))
|
||||
return 0;
|
||||
|
||||
heads = 64;
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ static int arcmsr_iop_confirm(struct AdapterControlBlock *acb);
|
|||
static int arcmsr_abort(struct scsi_cmnd *);
|
||||
static int arcmsr_bus_reset(struct scsi_cmnd *);
|
||||
static int arcmsr_bios_param(struct scsi_device *sdev,
|
||||
struct block_device *bdev, sector_t capacity, int *info);
|
||||
struct gendisk *disk, sector_t capacity, int *info);
|
||||
static int arcmsr_queue_command(struct Scsi_Host *h, struct scsi_cmnd *cmd);
|
||||
static int arcmsr_probe(struct pci_dev *pdev,
|
||||
const struct pci_device_id *id);
|
||||
|
|
@ -377,11 +377,11 @@ static irqreturn_t arcmsr_do_interrupt(int irq, void *dev_id)
|
|||
}
|
||||
|
||||
static int arcmsr_bios_param(struct scsi_device *sdev,
|
||||
struct block_device *bdev, sector_t capacity, int *geom)
|
||||
struct gendisk *disk, sector_t capacity, int *geom)
|
||||
{
|
||||
int heads, sectors, cylinders, total_capacity;
|
||||
|
||||
if (scsi_partsize(bdev, capacity, geom))
|
||||
if (scsi_partsize(disk, capacity, geom))
|
||||
return 0;
|
||||
|
||||
total_capacity = capacity;
|
||||
|
|
|
|||
|
|
@ -1692,7 +1692,7 @@ static int atp870u_show_info(struct seq_file *m, struct Scsi_Host *HBAptr)
|
|||
}
|
||||
|
||||
|
||||
static int atp870u_biosparam(struct scsi_device *disk, struct block_device *dev,
|
||||
static int atp870u_biosparam(struct scsi_device *disk, struct gendisk *unused,
|
||||
sector_t capacity, int *ip)
|
||||
{
|
||||
int heads, sectors, cylinders;
|
||||
|
|
|
|||
|
|
@ -469,10 +469,10 @@ static int fdomain_host_reset(struct scsi_cmnd *cmd)
|
|||
}
|
||||
|
||||
static int fdomain_biosparam(struct scsi_device *sdev,
|
||||
struct block_device *bdev, sector_t capacity,
|
||||
struct gendisk *disk, sector_t capacity,
|
||||
int geom[])
|
||||
{
|
||||
unsigned char *p = scsi_bios_ptable(bdev);
|
||||
unsigned char *p = scsi_bios_ptable(disk);
|
||||
|
||||
if (p && p[65] == 0xaa && p[64] == 0x55 /* Partition table valid */
|
||||
&& p[4]) { /* Partition type */
|
||||
|
|
|
|||
|
|
@ -954,7 +954,7 @@ static DEF_SCSI_QCMD(imm_queuecommand)
|
|||
* be done in sd.c. Even if it gets fixed there, this will still
|
||||
* work.
|
||||
*/
|
||||
static int imm_biosparam(struct scsi_device *sdev, struct block_device *dev,
|
||||
static int imm_biosparam(struct scsi_device *sdev, struct gendisk *unused,
|
||||
sector_t capacity, int ip[])
|
||||
{
|
||||
ip[0] = 0x40;
|
||||
|
|
|
|||
|
|
@ -2645,7 +2645,7 @@ static int i91u_bus_reset(struct scsi_cmnd * cmnd)
|
|||
/**
|
||||
* i91u_biosparam - return the "logical geometry
|
||||
* @sdev: SCSI device
|
||||
* @dev: Matching block device
|
||||
* @unused: Matching gendisk
|
||||
* @capacity: Sector size of drive
|
||||
* @info_array: Return space for BIOS geometry
|
||||
*
|
||||
|
|
@ -2655,7 +2655,7 @@ static int i91u_bus_reset(struct scsi_cmnd * cmnd)
|
|||
* FIXME: limited to 2^32 sector devices.
|
||||
*/
|
||||
|
||||
static int i91u_biosparam(struct scsi_device *sdev, struct block_device *dev,
|
||||
static int i91u_biosparam(struct scsi_device *sdev, struct gendisk *unused,
|
||||
sector_t capacity, int *info_array)
|
||||
{
|
||||
struct initio_host *host; /* Point to Host adapter control block */
|
||||
|
|
|
|||
|
|
@ -4644,10 +4644,10 @@ ATTRIBUTE_GROUPS(ipr_dev);
|
|||
|
||||
/**
|
||||
* ipr_biosparam - Return the HSC mapping
|
||||
* @sdev: scsi device struct
|
||||
* @block_device: block device pointer
|
||||
* @sdev: scsi device struct
|
||||
* @unused: gendisk pointer
|
||||
* @capacity: capacity of the device
|
||||
* @parm: Array containing returned HSC values.
|
||||
* @parm: Array containing returned HSC values.
|
||||
*
|
||||
* This function generates the HSC parms that fdisk uses.
|
||||
* We want to make sure we return something that places partitions
|
||||
|
|
@ -4657,7 +4657,7 @@ ATTRIBUTE_GROUPS(ipr_dev);
|
|||
* 0 on success
|
||||
**/
|
||||
static int ipr_biosparam(struct scsi_device *sdev,
|
||||
struct block_device *block_device,
|
||||
struct gendisk *unused,
|
||||
sector_t capacity, int *parm)
|
||||
{
|
||||
int heads, sectors;
|
||||
|
|
|
|||
|
|
@ -1123,7 +1123,7 @@ static DEF_SCSI_QCMD(ips_queue)
|
|||
/* Set bios geometry for the controller */
|
||||
/* */
|
||||
/****************************************************************************/
|
||||
static int ips_biosparam(struct scsi_device *sdev, struct block_device *bdev,
|
||||
static int ips_biosparam(struct scsi_device *sdev, struct gendisk *unused,
|
||||
sector_t capacity, int geom[])
|
||||
{
|
||||
ips_ha_t *ha = (ips_ha_t *) sdev->host->hostdata;
|
||||
|
|
|
|||
|
|
@ -398,7 +398,7 @@
|
|||
/*
|
||||
* Scsi_Host Template
|
||||
*/
|
||||
static int ips_biosparam(struct scsi_device *sdev, struct block_device *bdev,
|
||||
static int ips_biosparam(struct scsi_device *sdev, struct gendisk *unused,
|
||||
sector_t capacity, int geom[]);
|
||||
static int ips_sdev_configure(struct scsi_device *SDptr,
|
||||
struct queue_limits *lim);
|
||||
|
|
|
|||
|
|
@ -845,7 +845,7 @@ int sas_change_queue_depth(struct scsi_device *sdev, int depth)
|
|||
EXPORT_SYMBOL_GPL(sas_change_queue_depth);
|
||||
|
||||
int sas_bios_param(struct scsi_device *scsi_dev,
|
||||
struct block_device *bdev,
|
||||
struct gendisk *unused,
|
||||
sector_t capacity, int *hsc)
|
||||
{
|
||||
hsc[0] = 255;
|
||||
|
|
|
|||
|
|
@ -2780,7 +2780,7 @@ static inline void mega_create_proc_entry(int index, struct proc_dir_entry *pare
|
|||
* Return the disk geometry for a particular disk
|
||||
*/
|
||||
static int
|
||||
megaraid_biosparam(struct scsi_device *sdev, struct block_device *bdev,
|
||||
megaraid_biosparam(struct scsi_device *sdev, struct gendisk *disk,
|
||||
sector_t capacity, int geom[])
|
||||
{
|
||||
adapter_t *adapter;
|
||||
|
|
@ -2813,7 +2813,7 @@ megaraid_biosparam(struct scsi_device *sdev, struct block_device *bdev,
|
|||
geom[2] = cylinders;
|
||||
}
|
||||
else {
|
||||
if (scsi_partsize(bdev, capacity, geom))
|
||||
if (scsi_partsize(disk, capacity, geom))
|
||||
return 0;
|
||||
|
||||
dev_info(&adapter->dev->dev,
|
||||
|
|
|
|||
|
|
@ -975,7 +975,7 @@ static void mega_free_scb(adapter_t *, scb_t *);
|
|||
static int megaraid_abort(struct scsi_cmnd *);
|
||||
static int megaraid_reset(struct scsi_cmnd *);
|
||||
static int megaraid_abort_and_reset(adapter_t *, struct scsi_cmnd *, int);
|
||||
static int megaraid_biosparam(struct scsi_device *, struct block_device *,
|
||||
static int megaraid_biosparam(struct scsi_device *, struct gendisk *,
|
||||
sector_t, int []);
|
||||
|
||||
static int mega_build_sglist (adapter_t *adapter, scb_t *scb,
|
||||
|
|
|
|||
|
|
@ -3137,12 +3137,12 @@ static int megasas_reset_target(struct scsi_cmnd *scmd)
|
|||
/**
|
||||
* megasas_bios_param - Returns disk geometry for a disk
|
||||
* @sdev: device handle
|
||||
* @bdev: block device
|
||||
* @unused: gendisk
|
||||
* @capacity: drive capacity
|
||||
* @geom: geometry parameters
|
||||
*/
|
||||
static int
|
||||
megasas_bios_param(struct scsi_device *sdev, struct block_device *bdev,
|
||||
megasas_bios_param(struct scsi_device *sdev, struct gendisk *unused,
|
||||
sector_t capacity, int geom[])
|
||||
{
|
||||
int heads;
|
||||
|
|
|
|||
|
|
@ -4031,7 +4031,7 @@ int mpi3mr_issue_tm(struct mpi3mr_ioc *mrioc, u8 tm_type,
|
|||
/**
|
||||
* mpi3mr_bios_param - BIOS param callback
|
||||
* @sdev: SCSI device reference
|
||||
* @bdev: Block device reference
|
||||
* @unused: gendisk reference
|
||||
* @capacity: Capacity in logical sectors
|
||||
* @params: Parameter array
|
||||
*
|
||||
|
|
@ -4040,7 +4040,7 @@ int mpi3mr_issue_tm(struct mpi3mr_ioc *mrioc, u8 tm_type,
|
|||
* Return: 0 always
|
||||
*/
|
||||
static int mpi3mr_bios_param(struct scsi_device *sdev,
|
||||
struct block_device *bdev, sector_t capacity, int params[])
|
||||
struct gendisk *unused, sector_t capacity, int params[])
|
||||
{
|
||||
int heads;
|
||||
int sectors;
|
||||
|
|
|
|||
|
|
@ -2754,7 +2754,7 @@ scsih_sdev_configure(struct scsi_device *sdev, struct queue_limits *lim)
|
|||
/**
|
||||
* scsih_bios_param - fetch head, sector, cylinder info for a disk
|
||||
* @sdev: scsi device struct
|
||||
* @bdev: pointer to block device context
|
||||
* @unused: pointer to gendisk
|
||||
* @capacity: device size (in 512 byte sectors)
|
||||
* @params: three element array to place output:
|
||||
* params[0] number of heads (max 255)
|
||||
|
|
@ -2762,7 +2762,7 @@ scsih_sdev_configure(struct scsi_device *sdev, struct queue_limits *lim)
|
|||
* params[2] number of cylinders
|
||||
*/
|
||||
static int
|
||||
scsih_bios_param(struct scsi_device *sdev, struct block_device *bdev,
|
||||
scsih_bios_param(struct scsi_device *sdev, struct gendisk *unused,
|
||||
sector_t capacity, int params[])
|
||||
{
|
||||
int heads;
|
||||
|
|
|
|||
|
|
@ -2142,7 +2142,7 @@ static enum scsi_timeout_action mvumi_timed_out(struct scsi_cmnd *scmd)
|
|||
}
|
||||
|
||||
static int
|
||||
mvumi_bios_param(struct scsi_device *sdev, struct block_device *bdev,
|
||||
mvumi_bios_param(struct scsi_device *sdev, struct gendisk *unused,
|
||||
sector_t capacity, int geom[])
|
||||
{
|
||||
int heads, sectors;
|
||||
|
|
|
|||
|
|
@ -1745,7 +1745,7 @@ static void myrb_sdev_destroy(struct scsi_device *sdev)
|
|||
kfree(sdev->hostdata);
|
||||
}
|
||||
|
||||
static int myrb_biosparam(struct scsi_device *sdev, struct block_device *bdev,
|
||||
static int myrb_biosparam(struct scsi_device *sdev, struct gendisk *unused,
|
||||
sector_t capacity, int geom[])
|
||||
{
|
||||
struct myrb_hba *cb = shost_priv(sdev->host);
|
||||
|
|
|
|||
|
|
@ -597,7 +597,7 @@ SYM53C500_host_reset(struct scsi_cmnd *SCpnt)
|
|||
|
||||
static int
|
||||
SYM53C500_biosparm(struct scsi_device *disk,
|
||||
struct block_device *dev,
|
||||
struct gendisk *unused,
|
||||
sector_t capacity, int *info_array)
|
||||
{
|
||||
int size;
|
||||
|
|
|
|||
|
|
@ -845,7 +845,7 @@ static DEF_SCSI_QCMD(ppa_queuecommand)
|
|||
* be done in sd.c. Even if it gets fixed there, this will still
|
||||
* work.
|
||||
*/
|
||||
static int ppa_biosparam(struct scsi_device *sdev, struct block_device *dev,
|
||||
static int ppa_biosparam(struct scsi_device *sdev, struct gendisk *unused,
|
||||
sector_t capacity, int ip[])
|
||||
{
|
||||
ip[0] = 0x40;
|
||||
|
|
|
|||
|
|
@ -1023,7 +1023,7 @@ qla1280_eh_adapter_reset(struct scsi_cmnd *cmd)
|
|||
}
|
||||
|
||||
static int
|
||||
qla1280_biosparam(struct scsi_device *sdev, struct block_device *bdev,
|
||||
qla1280_biosparam(struct scsi_device *sdev, struct gendisk *unused,
|
||||
sector_t capacity, int geom[])
|
||||
{
|
||||
int heads, sectors, cylinders;
|
||||
|
|
|
|||
|
|
@ -492,7 +492,7 @@ DEF_SCSI_QCMD(qlogicfas408_queuecommand)
|
|||
* Return bios parameters
|
||||
*/
|
||||
|
||||
int qlogicfas408_biosparam(struct scsi_device *disk, struct block_device *dev,
|
||||
int qlogicfas408_biosparam(struct scsi_device *disk, struct gendisk *unused,
|
||||
sector_t capacity, int ip[])
|
||||
{
|
||||
/* This should mimic the DOS Qlogic driver's behavior exactly */
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ struct qlogicfas408_priv {
|
|||
irqreturn_t qlogicfas408_ihandl(int irq, void *dev_id);
|
||||
int qlogicfas408_queuecommand(struct Scsi_Host *h, struct scsi_cmnd * cmd);
|
||||
int qlogicfas408_biosparam(struct scsi_device * disk,
|
||||
struct block_device *dev,
|
||||
struct gendisk *unused,
|
||||
sector_t capacity, int ip[]);
|
||||
int qlogicfas408_abort(struct scsi_cmnd * cmd);
|
||||
extern int qlogicfas408_host_reset(struct scsi_cmnd *cmd);
|
||||
|
|
|
|||
|
|
@ -30,9 +30,9 @@
|
|||
* starting at offset %0x1be.
|
||||
* Returns: partition table in kmalloc(GFP_KERNEL) memory, or NULL on error.
|
||||
*/
|
||||
unsigned char *scsi_bios_ptable(struct block_device *dev)
|
||||
unsigned char *scsi_bios_ptable(struct gendisk *dev)
|
||||
{
|
||||
struct address_space *mapping = bdev_whole(dev)->bd_mapping;
|
||||
struct address_space *mapping = dev->part0->bd_mapping;
|
||||
unsigned char *res = NULL;
|
||||
struct folio *folio;
|
||||
|
||||
|
|
@ -48,7 +48,7 @@ EXPORT_SYMBOL(scsi_bios_ptable);
|
|||
|
||||
/**
|
||||
* scsi_partsize - Parse cylinders/heads/sectors from PC partition table
|
||||
* @bdev: block device to parse
|
||||
* @disk: gendisk of the disk to parse
|
||||
* @capacity: size of the disk in sectors
|
||||
* @geom: output in form of [hds, cylinders, sectors]
|
||||
*
|
||||
|
|
@ -57,7 +57,7 @@ EXPORT_SYMBOL(scsi_bios_ptable);
|
|||
*
|
||||
* Returns: %false on failure, %true on success.
|
||||
*/
|
||||
bool scsi_partsize(struct block_device *bdev, sector_t capacity, int geom[3])
|
||||
bool scsi_partsize(struct gendisk *disk, sector_t capacity, int geom[3])
|
||||
{
|
||||
int cyl, ext_cyl, end_head, end_cyl, end_sector;
|
||||
unsigned int logical_end, physical_end, ext_physical_end;
|
||||
|
|
@ -65,7 +65,7 @@ bool scsi_partsize(struct block_device *bdev, sector_t capacity, int geom[3])
|
|||
void *buf;
|
||||
int ret = false;
|
||||
|
||||
buf = scsi_bios_ptable(bdev);
|
||||
buf = scsi_bios_ptable(disk);
|
||||
if (!buf)
|
||||
return false;
|
||||
|
||||
|
|
@ -205,7 +205,7 @@ static int setsize(unsigned long capacity, unsigned int *cyls, unsigned int *hds
|
|||
|
||||
/**
|
||||
* scsicam_bios_param - Determine geometry of a disk in cylinders/heads/sectors.
|
||||
* @bdev: which device
|
||||
* @disk: which device
|
||||
* @capacity: size of the disk in sectors
|
||||
* @ip: return value: ip[0]=heads, ip[1]=sectors, ip[2]=cylinders
|
||||
*
|
||||
|
|
@ -215,13 +215,13 @@ static int setsize(unsigned long capacity, unsigned int *cyls, unsigned int *hds
|
|||
*
|
||||
* Returns : -1 on failure, 0 on success.
|
||||
*/
|
||||
int scsicam_bios_param(struct block_device *bdev, sector_t capacity, int *ip)
|
||||
int scsicam_bios_param(struct gendisk *disk, sector_t capacity, int *ip)
|
||||
{
|
||||
u64 capacity64 = capacity; /* Suppress gcc warning */
|
||||
int ret = 0;
|
||||
|
||||
/* try to infer mapping from partition table */
|
||||
if (scsi_partsize(bdev, capacity, ip))
|
||||
if (scsi_partsize(disk, capacity, ip))
|
||||
return 0;
|
||||
|
||||
if (capacity64 < (1ULL << 32)) {
|
||||
|
|
|
|||
|
|
@ -1599,9 +1599,9 @@ static void sd_release(struct gendisk *disk)
|
|||
scsi_device_put(sdev);
|
||||
}
|
||||
|
||||
static int sd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
||||
static int sd_getgeo(struct gendisk *disk, struct hd_geometry *geo)
|
||||
{
|
||||
struct scsi_disk *sdkp = scsi_disk(bdev->bd_disk);
|
||||
struct scsi_disk *sdkp = scsi_disk(disk);
|
||||
struct scsi_device *sdp = sdkp->device;
|
||||
struct Scsi_Host *host = sdp->host;
|
||||
sector_t capacity = logical_to_sectors(sdp, sdkp->capacity);
|
||||
|
|
@ -1614,9 +1614,9 @@ static int sd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
|||
|
||||
/* override with calculated, extended default, or driver values */
|
||||
if (host->hostt->bios_param)
|
||||
host->hostt->bios_param(sdp, bdev, capacity, diskinfo);
|
||||
host->hostt->bios_param(sdp, disk, capacity, diskinfo);
|
||||
else
|
||||
scsicam_bios_param(bdev, capacity, diskinfo);
|
||||
scsicam_bios_param(disk, capacity, diskinfo);
|
||||
|
||||
geo->heads = diskinfo[0];
|
||||
geo->sectors = diskinfo[1];
|
||||
|
|
|
|||
|
|
@ -1457,7 +1457,7 @@ static void stex_reset_work(struct work_struct *work)
|
|||
}
|
||||
|
||||
static int stex_biosparam(struct scsi_device *sdev,
|
||||
struct block_device *bdev, sector_t capacity, int geom[])
|
||||
struct gendisk *unused, sector_t capacity, int geom[])
|
||||
{
|
||||
int heads = 255, sectors = 63;
|
||||
|
||||
|
|
|
|||
|
|
@ -1615,7 +1615,7 @@ static int storvsc_sdev_configure(struct scsi_device *sdevice,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int storvsc_get_chs(struct scsi_device *sdev, struct block_device * bdev,
|
||||
static int storvsc_get_chs(struct scsi_device *sdev, struct gendisk *unused,
|
||||
sector_t capacity, int *info)
|
||||
{
|
||||
sector_t nsect = capacity;
|
||||
|
|
|
|||
|
|
@ -544,7 +544,7 @@ static int wd719x_host_reset(struct scsi_cmnd *cmd)
|
|||
return wd719x_chip_init(wd) == 0 ? SUCCESS : FAILED;
|
||||
}
|
||||
|
||||
static int wd719x_biosparam(struct scsi_device *sdev, struct block_device *bdev,
|
||||
static int wd719x_biosparam(struct scsi_device *sdev, struct gendisk *unused,
|
||||
sector_t capacity, int geom[])
|
||||
{
|
||||
if (capacity >= 0x200000) {
|
||||
|
|
|
|||
|
|
@ -1660,7 +1660,7 @@ struct block_device_operations {
|
|||
unsigned int (*check_events) (struct gendisk *disk,
|
||||
unsigned int clearing);
|
||||
void (*unlock_native_capacity) (struct gendisk *);
|
||||
int (*getgeo)(struct block_device *, struct hd_geometry *);
|
||||
int (*getgeo)(struct gendisk *, struct hd_geometry *);
|
||||
int (*set_read_only)(struct block_device *bdev, bool ro);
|
||||
void (*free_disk)(struct gendisk *disk);
|
||||
/* this callback is with swap_lock and sometimes page table lock held */
|
||||
|
|
|
|||
|
|
@ -1203,7 +1203,7 @@ extern void ata_qc_complete(struct ata_queued_cmd *qc);
|
|||
extern u64 ata_qc_get_active(struct ata_port *ap);
|
||||
extern void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd);
|
||||
extern int ata_std_bios_param(struct scsi_device *sdev,
|
||||
struct block_device *bdev,
|
||||
struct gendisk *unused,
|
||||
sector_t capacity, int geom[]);
|
||||
extern void ata_scsi_unlock_native_capacity(struct scsi_device *sdev);
|
||||
extern int ata_scsi_sdev_init(struct scsi_device *sdev);
|
||||
|
|
|
|||
|
|
@ -685,7 +685,7 @@ extern int sas_queuecommand(struct Scsi_Host *, struct scsi_cmnd *);
|
|||
extern int sas_target_alloc(struct scsi_target *);
|
||||
int sas_sdev_configure(struct scsi_device *dev, struct queue_limits *lim);
|
||||
extern int sas_change_queue_depth(struct scsi_device *, int new_depth);
|
||||
extern int sas_bios_param(struct scsi_device *, struct block_device *,
|
||||
extern int sas_bios_param(struct scsi_device *, struct gendisk *,
|
||||
sector_t capacity, int *hsc);
|
||||
int sas_execute_internal_abort_single(struct domain_device *device,
|
||||
u16 tag, unsigned int qid,
|
||||
|
|
|
|||
|
|
@ -318,7 +318,7 @@ struct scsi_host_template {
|
|||
*
|
||||
* Status: OPTIONAL
|
||||
*/
|
||||
int (* bios_param)(struct scsi_device *, struct block_device *,
|
||||
int (* bios_param)(struct scsi_device *, struct gendisk *,
|
||||
sector_t, int []);
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -13,7 +13,8 @@
|
|||
|
||||
#ifndef SCSICAM_H
|
||||
#define SCSICAM_H
|
||||
int scsicam_bios_param(struct block_device *bdev, sector_t capacity, int *ip);
|
||||
bool scsi_partsize(struct block_device *bdev, sector_t capacity, int geom[3]);
|
||||
unsigned char *scsi_bios_ptable(struct block_device *bdev);
|
||||
struct gendisk;
|
||||
int scsicam_bios_param(struct gendisk *disk, sector_t capacity, int *ip);
|
||||
bool scsi_partsize(struct gendisk *disk, sector_t capacity, int geom[3]);
|
||||
unsigned char *scsi_bios_ptable(struct gendisk *disk);
|
||||
#endif /* def SCSICAM_H */
|
||||
|
|
|
|||
Loading…
Reference in New Issue