Merge branch 'for-4.8/block' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm into for-4.8/drivers
Dan writes: "The removal of ->driverfs_dev in favor of just passing the parent device in as a parameter to add_disk(). See below, it has received a "Reviewed-by" from Christoph, Bart, and Johannes. It is also a pre-requisite for Fam Zheng's work to cleanup gendisk uevents vs attribute visibility [1]. We would extend device_add_disk() to take an attribute_group list. This is based off a branch of block.git/for-4.8/drivers and has received a positive build success notification from the kbuild robot across several configs. [1]: "gendisk: Generate uevent after attribute available" http://marc.info/?l=linux-virtualization&m=146725201522201&w=2"
This commit is contained in:
Коммит
41d512e51b
|
@ -223,7 +223,6 @@ static int axon_ram_probe(struct platform_device *device)
|
|||
bank->disk->first_minor = azfs_minor;
|
||||
bank->disk->fops = &axon_ram_devops;
|
||||
bank->disk->private_data = bank;
|
||||
bank->disk->driverfs_dev = &device->dev;
|
||||
|
||||
sprintf(bank->disk->disk_name, "%s%d",
|
||||
AXON_RAM_DEVICE_NAME, axon_ram_bank_id);
|
||||
|
@ -238,7 +237,7 @@ static int axon_ram_probe(struct platform_device *device)
|
|||
set_capacity(bank->disk, bank->size >> AXON_RAM_SECTOR_SHIFT);
|
||||
blk_queue_make_request(bank->disk->queue, axon_ram_make_request);
|
||||
blk_queue_logical_block_size(bank->disk->queue, AXON_RAM_SECTOR_SIZE);
|
||||
add_disk(bank->disk);
|
||||
device_add_disk(&device->dev, bank->disk);
|
||||
|
||||
bank->irq_id = irq_of_parse_and_map(device->dev.of_node, 0);
|
||||
if (bank->irq_id == NO_IRQ) {
|
||||
|
|
|
@ -801,6 +801,7 @@ static void ubd_device_release(struct device *dev)
|
|||
static int ubd_disk_register(int major, u64 size, int unit,
|
||||
struct gendisk **disk_out)
|
||||
{
|
||||
struct device *parent = NULL;
|
||||
struct gendisk *disk;
|
||||
|
||||
disk = alloc_disk(1 << UBD_SHIFT);
|
||||
|
@ -823,12 +824,12 @@ static int ubd_disk_register(int major, u64 size, int unit,
|
|||
ubd_devs[unit].pdev.dev.release = ubd_device_release;
|
||||
dev_set_drvdata(&ubd_devs[unit].pdev.dev, &ubd_devs[unit]);
|
||||
platform_device_register(&ubd_devs[unit].pdev);
|
||||
disk->driverfs_dev = &ubd_devs[unit].pdev.dev;
|
||||
parent = &ubd_devs[unit].pdev.dev;
|
||||
}
|
||||
|
||||
disk->private_data = &ubd_devs[unit];
|
||||
disk->queue = ubd_devs[unit].queue;
|
||||
add_disk(disk);
|
||||
device_add_disk(parent, disk);
|
||||
|
||||
*disk_out = disk;
|
||||
return 0;
|
||||
|
|
|
@ -506,7 +506,7 @@ static int exact_lock(dev_t devt, void *data)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void register_disk(struct gendisk *disk)
|
||||
static void register_disk(struct device *parent, struct gendisk *disk)
|
||||
{
|
||||
struct device *ddev = disk_to_dev(disk);
|
||||
struct block_device *bdev;
|
||||
|
@ -514,7 +514,7 @@ static void register_disk(struct gendisk *disk)
|
|||
struct hd_struct *part;
|
||||
int err;
|
||||
|
||||
ddev->parent = disk->driverfs_dev;
|
||||
ddev->parent = parent;
|
||||
|
||||
dev_set_name(ddev, "%s", disk->disk_name);
|
||||
|
||||
|
@ -573,7 +573,8 @@ exit:
|
|||
}
|
||||
|
||||
/**
|
||||
* add_disk - add partitioning information to kernel list
|
||||
* device_add_disk - add partitioning information to kernel list
|
||||
* @parent: parent device for the disk
|
||||
* @disk: per-device partitioning information
|
||||
*
|
||||
* This function registers the partitioning information in @disk
|
||||
|
@ -581,7 +582,7 @@ exit:
|
|||
*
|
||||
* FIXME: error handling
|
||||
*/
|
||||
void add_disk(struct gendisk *disk)
|
||||
void device_add_disk(struct device *parent, struct gendisk *disk)
|
||||
{
|
||||
struct backing_dev_info *bdi;
|
||||
dev_t devt;
|
||||
|
@ -617,7 +618,7 @@ void add_disk(struct gendisk *disk)
|
|||
|
||||
blk_register_region(disk_devt(disk), disk->minors, NULL,
|
||||
exact_match, exact_lock, disk);
|
||||
register_disk(disk);
|
||||
register_disk(parent, disk);
|
||||
blk_register_queue(disk);
|
||||
|
||||
/*
|
||||
|
@ -633,7 +634,7 @@ void add_disk(struct gendisk *disk)
|
|||
disk_add_events(disk);
|
||||
blk_integrity_add(disk);
|
||||
}
|
||||
EXPORT_SYMBOL(add_disk);
|
||||
EXPORT_SYMBOL(device_add_disk);
|
||||
|
||||
void del_gendisk(struct gendisk *disk)
|
||||
{
|
||||
|
@ -799,10 +800,9 @@ void __init printk_all_partitions(void)
|
|||
, disk_name(disk, part->partno, name_buf),
|
||||
part->info ? part->info->uuid : "");
|
||||
if (is_part0) {
|
||||
if (disk->driverfs_dev != NULL &&
|
||||
disk->driverfs_dev->driver != NULL)
|
||||
if (dev->parent && dev->parent->driver)
|
||||
printk(" driver: %s\n",
|
||||
disk->driverfs_dev->driver->name);
|
||||
dev->parent->driver->name);
|
||||
else
|
||||
printk(" (driver?)\n");
|
||||
} else
|
||||
|
|
|
@ -1951,7 +1951,6 @@ static int cciss_add_disk(ctlr_info_t *h, struct gendisk *disk,
|
|||
if (cciss_create_ld_sysfs_entry(h, drv_index))
|
||||
goto cleanup_queue;
|
||||
disk->private_data = h->drv[drv_index];
|
||||
disk->driverfs_dev = &h->drv[drv_index]->dev;
|
||||
|
||||
/* Set up queue information */
|
||||
blk_queue_bounce_limit(disk->queue, h->pdev->dma_mask);
|
||||
|
@ -1973,7 +1972,7 @@ static int cciss_add_disk(ctlr_info_t *h, struct gendisk *disk,
|
|||
/* allows the interrupt handler to start the queue */
|
||||
wmb();
|
||||
h->drv[drv_index]->queue = disk->queue;
|
||||
add_disk(disk);
|
||||
device_add_disk(&h->drv[drv_index]->dev, disk);
|
||||
return 0;
|
||||
|
||||
cleanup_queue:
|
||||
|
|
|
@ -4350,8 +4350,7 @@ static int __init do_floppy_init(void)
|
|||
/* to be cleaned up... */
|
||||
disks[drive]->private_data = (void *)(long)drive;
|
||||
disks[drive]->flags |= GENHD_FL_REMOVABLE;
|
||||
disks[drive]->driverfs_dev = &floppy_device[drive].dev;
|
||||
add_disk(disks[drive]);
|
||||
device_add_disk(&floppy_device[drive].dev, disks[drive]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -3956,7 +3956,6 @@ static int mtip_block_initialize(struct driver_data *dd)
|
|||
if (rv)
|
||||
goto disk_index_error;
|
||||
|
||||
dd->disk->driverfs_dev = &dd->pdev->dev;
|
||||
dd->disk->major = dd->major;
|
||||
dd->disk->first_minor = index * MTIP_MAX_MINORS;
|
||||
dd->disk->minors = MTIP_MAX_MINORS;
|
||||
|
@ -4008,7 +4007,7 @@ skip_create_disk:
|
|||
|
||||
/*
|
||||
* if rebuild pending, start the service thread, and delay the block
|
||||
* queue creation and add_disk()
|
||||
* queue creation and device_add_disk()
|
||||
*/
|
||||
if (wait_for_rebuild == MTIP_FTL_REBUILD_MAGIC)
|
||||
goto start_service_thread;
|
||||
|
@ -4042,7 +4041,7 @@ skip_create_disk:
|
|||
set_capacity(dd->disk, capacity);
|
||||
|
||||
/* Enable the block device and add it to /dev */
|
||||
add_disk(dd->disk);
|
||||
device_add_disk(&dd->pdev->dev, dd->disk);
|
||||
|
||||
dd->bdev = bdget_disk(dd->disk, 0);
|
||||
/*
|
||||
|
|
|
@ -487,7 +487,6 @@ static int ps3disk_probe(struct ps3_system_bus_device *_dev)
|
|||
gendisk->fops = &ps3disk_fops;
|
||||
gendisk->queue = queue;
|
||||
gendisk->private_data = dev;
|
||||
gendisk->driverfs_dev = &dev->sbd.core;
|
||||
snprintf(gendisk->disk_name, sizeof(gendisk->disk_name), PS3DISK_NAME,
|
||||
devidx+'a');
|
||||
priv->blocking_factor = dev->blk_size >> 9;
|
||||
|
@ -499,7 +498,7 @@ static int ps3disk_probe(struct ps3_system_bus_device *_dev)
|
|||
gendisk->disk_name, priv->model, priv->raw_capacity >> 11,
|
||||
get_capacity(gendisk) >> 11);
|
||||
|
||||
add_disk(gendisk);
|
||||
device_add_disk(&dev->sbd.core, gendisk);
|
||||
return 0;
|
||||
|
||||
fail_cleanup_queue:
|
||||
|
|
|
@ -773,14 +773,13 @@ static int ps3vram_probe(struct ps3_system_bus_device *dev)
|
|||
gendisk->fops = &ps3vram_fops;
|
||||
gendisk->queue = queue;
|
||||
gendisk->private_data = dev;
|
||||
gendisk->driverfs_dev = &dev->core;
|
||||
strlcpy(gendisk->disk_name, DEVICE_NAME, sizeof(gendisk->disk_name));
|
||||
set_capacity(gendisk, priv->size >> 9);
|
||||
|
||||
dev_info(&dev->core, "%s: Using %lu MiB of GPU memory\n",
|
||||
gendisk->disk_name, get_capacity(gendisk) >> 11);
|
||||
|
||||
add_disk(gendisk);
|
||||
device_add_disk(&dev->core, gendisk);
|
||||
return 0;
|
||||
|
||||
fail_cleanup_queue:
|
||||
|
|
|
@ -230,8 +230,7 @@ int rsxx_attach_dev(struct rsxx_cardinfo *card)
|
|||
set_capacity(card->gendisk, card->size8 >> 9);
|
||||
else
|
||||
set_capacity(card->gendisk, 0);
|
||||
add_disk(card->gendisk);
|
||||
|
||||
device_add_disk(CARD_TO_DEV(card), card->gendisk);
|
||||
card->bdev_attached = 1;
|
||||
}
|
||||
|
||||
|
@ -308,7 +307,6 @@ int rsxx_setup_dev(struct rsxx_cardinfo *card)
|
|||
|
||||
snprintf(card->gendisk->disk_name, sizeof(card->gendisk->disk_name),
|
||||
"rsxx%d", card->disk_id);
|
||||
card->gendisk->driverfs_dev = &card->dev->dev;
|
||||
card->gendisk->major = card->major;
|
||||
card->gendisk->first_minor = 0;
|
||||
card->gendisk->fops = &rsxx_fops;
|
||||
|
|
|
@ -4690,10 +4690,10 @@ static int skd_bdev_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
|||
return -EIO;
|
||||
}
|
||||
|
||||
static int skd_bdev_attach(struct skd_device *skdev)
|
||||
static int skd_bdev_attach(struct device *parent, struct skd_device *skdev)
|
||||
{
|
||||
pr_debug("%s:%s:%d add_disk\n", skdev->name, __func__, __LINE__);
|
||||
add_disk(skdev->disk);
|
||||
device_add_disk(parent, skdev->disk);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -4812,8 +4812,6 @@ static int skd_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
|
||||
pci_set_drvdata(pdev, skdev);
|
||||
|
||||
skdev->disk->driverfs_dev = &pdev->dev;
|
||||
|
||||
for (i = 0; i < SKD_MAX_BARS; i++) {
|
||||
skdev->mem_phys[i] = pci_resource_start(pdev, i);
|
||||
skdev->mem_size[i] = (u32)pci_resource_len(pdev, i);
|
||||
|
@ -4851,7 +4849,7 @@ static int skd_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|||
(SKD_START_WAIT_SECONDS * HZ));
|
||||
if (skdev->gendisk_on > 0) {
|
||||
/* device came on-line after reset */
|
||||
skd_bdev_attach(skdev);
|
||||
skd_bdev_attach(&pdev->dev, skdev);
|
||||
rc = 0;
|
||||
} else {
|
||||
/* we timed out, something is wrong with the device,
|
||||
|
|
|
@ -804,7 +804,6 @@ static int probe_disk(struct vdc_port *port)
|
|||
g->fops = &vdc_fops;
|
||||
g->queue = q;
|
||||
g->private_data = port;
|
||||
g->driverfs_dev = &port->vio.vdev->dev;
|
||||
|
||||
set_capacity(g, port->vdisk_size);
|
||||
|
||||
|
@ -835,7 +834,7 @@ static int probe_disk(struct vdc_port *port)
|
|||
port->vdisk_size, (port->vdisk_size >> (20 - 9)),
|
||||
port->vio.ver.major, port->vio.ver.minor);
|
||||
|
||||
add_disk(g);
|
||||
device_add_disk(&port->vio.vdev->dev, g);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -656,7 +656,6 @@ static int virtblk_probe(struct virtio_device *vdev)
|
|||
vblk->disk->first_minor = index_to_minor(index);
|
||||
vblk->disk->private_data = vblk;
|
||||
vblk->disk->fops = &virtblk_fops;
|
||||
vblk->disk->driverfs_dev = &vdev->dev;
|
||||
vblk->disk->flags |= GENHD_FL_EXT_DEVT;
|
||||
vblk->index = index;
|
||||
|
||||
|
@ -733,7 +732,7 @@ static int virtblk_probe(struct virtio_device *vdev)
|
|||
|
||||
virtio_device_ready(vdev);
|
||||
|
||||
add_disk(vblk->disk);
|
||||
device_add_disk(&vdev->dev, vblk->disk);
|
||||
err = device_create_file(disk_to_dev(vblk->disk), &dev_attr_serial);
|
||||
if (err)
|
||||
goto out_del_disk;
|
||||
|
|
|
@ -1137,7 +1137,6 @@ static int xlvbd_alloc_gendisk(blkif_sector_t capacity,
|
|||
gd->first_minor = minor;
|
||||
gd->fops = &xlvbd_block_fops;
|
||||
gd->private_data = info;
|
||||
gd->driverfs_dev = &(info->xbdev->dev);
|
||||
set_capacity(gd, capacity);
|
||||
|
||||
if (xlvbd_init_blk_queue(gd, sector_size, physical_sector_size,
|
||||
|
@ -2463,7 +2462,7 @@ static void blkfront_connect(struct blkfront_info *info)
|
|||
for (i = 0; i < info->nr_rings; i++)
|
||||
kick_pending_request_queues(&info->rinfo[i]);
|
||||
|
||||
add_disk(info->gd);
|
||||
device_add_disk(&info->xbdev->dev, info->gd);
|
||||
|
||||
info->is_ready = 1;
|
||||
}
|
||||
|
|
|
@ -1770,7 +1770,6 @@ static int ide_cd_probe(ide_drive_t *drive)
|
|||
drive->driver_data = info;
|
||||
|
||||
g->minors = 1;
|
||||
g->driverfs_dev = &drive->gendev;
|
||||
g->flags = GENHD_FL_CD | GENHD_FL_REMOVABLE;
|
||||
if (ide_cdrom_setup(drive)) {
|
||||
put_device(&info->dev);
|
||||
|
@ -1780,7 +1779,7 @@ static int ide_cd_probe(ide_drive_t *drive)
|
|||
ide_cd_read_toc(drive, &sense);
|
||||
g->fops = &idecd_ops;
|
||||
g->flags |= GENHD_FL_REMOVABLE | GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE;
|
||||
add_disk(g);
|
||||
device_add_disk(&drive->gendev, g);
|
||||
return 0;
|
||||
|
||||
out_free_disk:
|
||||
|
|
|
@ -412,12 +412,11 @@ static int ide_gd_probe(ide_drive_t *drive)
|
|||
set_capacity(g, ide_gd_capacity(drive));
|
||||
|
||||
g->minors = IDE_DISK_MINORS;
|
||||
g->driverfs_dev = &drive->gendev;
|
||||
g->flags |= GENHD_FL_EXT_DEVT;
|
||||
if (drive->dev_flags & IDE_DFLAG_REMOVABLE)
|
||||
g->flags = GENHD_FL_REMOVABLE;
|
||||
g->fops = &ide_gd_ops;
|
||||
add_disk(g);
|
||||
device_add_disk(&drive->gendev, g);
|
||||
return 0;
|
||||
|
||||
out_free_disk:
|
||||
|
|
|
@ -2146,7 +2146,6 @@ static int msb_init_disk(struct memstick_dev *card)
|
|||
msb->disk->fops = &msb_bdops;
|
||||
msb->disk->private_data = msb;
|
||||
msb->disk->queue = msb->queue;
|
||||
msb->disk->driverfs_dev = &card->dev;
|
||||
msb->disk->flags |= GENHD_FL_EXT_DEVT;
|
||||
|
||||
capacity = msb->pages_in_block * msb->logical_block_count;
|
||||
|
@ -2163,7 +2162,7 @@ static int msb_init_disk(struct memstick_dev *card)
|
|||
set_disk_ro(msb->disk, 1);
|
||||
|
||||
msb_start(card);
|
||||
add_disk(msb->disk);
|
||||
device_add_disk(&card->dev, msb->disk);
|
||||
dbg("Disk added");
|
||||
return 0;
|
||||
|
||||
|
|
|
@ -1243,7 +1243,6 @@ static int mspro_block_init_disk(struct memstick_dev *card)
|
|||
msb->usage_count = 1;
|
||||
msb->disk->private_data = msb;
|
||||
msb->disk->queue = msb->queue;
|
||||
msb->disk->driverfs_dev = &card->dev;
|
||||
|
||||
sprintf(msb->disk->disk_name, "mspblk%d", disk_id);
|
||||
|
||||
|
@ -1255,7 +1254,7 @@ static int mspro_block_init_disk(struct memstick_dev *card)
|
|||
set_capacity(msb->disk, capacity);
|
||||
dev_dbg(&card->dev, "capacity set %ld\n", capacity);
|
||||
|
||||
add_disk(msb->disk);
|
||||
device_add_disk(&card->dev, msb->disk);
|
||||
msb->active = 1;
|
||||
return 0;
|
||||
|
||||
|
|
|
@ -93,6 +93,7 @@ static DEFINE_SPINLOCK(mmc_blk_lock);
|
|||
*/
|
||||
struct mmc_blk_data {
|
||||
spinlock_t lock;
|
||||
struct device *parent;
|
||||
struct gendisk *disk;
|
||||
struct mmc_queue queue;
|
||||
struct list_head part;
|
||||
|
@ -2270,7 +2271,7 @@ again:
|
|||
md->disk->fops = &mmc_bdops;
|
||||
md->disk->private_data = md;
|
||||
md->disk->queue = md->queue.queue;
|
||||
md->disk->driverfs_dev = parent;
|
||||
md->parent = parent;
|
||||
set_disk_ro(md->disk, md->read_only || default_ro);
|
||||
md->disk->flags = GENHD_FL_EXT_DEVT;
|
||||
if (area_type & (MMC_BLK_DATA_AREA_RPMB | MMC_BLK_DATA_AREA_BOOT))
|
||||
|
@ -2458,7 +2459,7 @@ static int mmc_add_disk(struct mmc_blk_data *md)
|
|||
int ret;
|
||||
struct mmc_card *card = md->queue.card;
|
||||
|
||||
add_disk(md->disk);
|
||||
device_add_disk(md->parent, md->disk);
|
||||
md->force_ro.show = force_ro_show;
|
||||
md->force_ro.store = force_ro_store;
|
||||
sysfs_attr_init(&md->force_ro.attr);
|
||||
|
|
|
@ -431,12 +431,10 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
|
|||
goto error4;
|
||||
INIT_WORK(&new->work, mtd_blktrans_work);
|
||||
|
||||
gd->driverfs_dev = &new->mtd->dev;
|
||||
|
||||
if (new->readonly)
|
||||
set_disk_ro(gd, 1);
|
||||
|
||||
add_disk(gd);
|
||||
device_add_disk(&new->mtd->dev, gd);
|
||||
|
||||
if (new->disk_attributes) {
|
||||
ret = sysfs_create_group(&disk_to_dev(gd)->kobj,
|
||||
|
|
|
@ -287,14 +287,13 @@ static int nsblk_attach_disk(struct nd_namespace_blk *nsblk)
|
|||
return -ENOMEM;
|
||||
}
|
||||
|
||||
disk->driverfs_dev = dev;
|
||||
disk->first_minor = 0;
|
||||
disk->fops = &nd_blk_fops;
|
||||
disk->queue = q;
|
||||
disk->flags = GENHD_FL_EXT_DEVT;
|
||||
nvdimm_namespace_disk_name(&nsblk->common, disk->disk_name);
|
||||
set_capacity(disk, 0);
|
||||
add_disk(disk);
|
||||
device_add_disk(dev, disk);
|
||||
|
||||
if (nsblk_meta_size(nsblk)) {
|
||||
int rc = nd_integrity_init(disk, nsblk_meta_size(nsblk));
|
||||
|
|
|
@ -1243,7 +1243,6 @@ static int btt_blk_init(struct btt *btt)
|
|||
}
|
||||
|
||||
nvdimm_namespace_disk_name(ndns, btt->btt_disk->disk_name);
|
||||
btt->btt_disk->driverfs_dev = &btt->nd_btt->dev;
|
||||
btt->btt_disk->first_minor = 0;
|
||||
btt->btt_disk->fops = &btt_fops;
|
||||
btt->btt_disk->private_data = btt;
|
||||
|
@ -1258,7 +1257,7 @@ static int btt_blk_init(struct btt *btt)
|
|||
btt->btt_queue->queuedata = btt;
|
||||
|
||||
set_capacity(btt->btt_disk, 0);
|
||||
add_disk(btt->btt_disk);
|
||||
device_add_disk(&btt->nd_btt->dev, btt->btt_disk);
|
||||
if (btt_meta_size(btt)) {
|
||||
int rc = nd_integrity_init(btt->btt_disk, btt_meta_size(btt));
|
||||
|
||||
|
|
|
@ -312,7 +312,7 @@ EXPORT_SYMBOL(__nd_driver_register);
|
|||
|
||||
int nvdimm_revalidate_disk(struct gendisk *disk)
|
||||
{
|
||||
struct device *dev = disk->driverfs_dev;
|
||||
struct device *dev = disk_to_dev(disk)->parent;
|
||||
struct nd_region *nd_region = to_nd_region(dev->parent);
|
||||
const char *pol = nd_region->ro ? "only" : "write";
|
||||
|
||||
|
|
|
@ -297,14 +297,13 @@ static int pmem_attach_disk(struct device *dev,
|
|||
disk->queue = q;
|
||||
disk->flags = GENHD_FL_EXT_DEVT;
|
||||
nvdimm_namespace_disk_name(ndns, disk->disk_name);
|
||||
disk->driverfs_dev = dev;
|
||||
set_capacity(disk, (pmem->size - pmem->pfn_pad - pmem->data_offset)
|
||||
/ 512);
|
||||
if (devm_init_badblocks(dev, &pmem->bb))
|
||||
return -ENOMEM;
|
||||
nvdimm_badblocks_populate(to_nd_region(dev->parent), &pmem->bb, res);
|
||||
disk->bb = &pmem->bb;
|
||||
add_disk(disk);
|
||||
device_add_disk(dev, disk);
|
||||
revalidate_disk(disk);
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -1665,7 +1665,6 @@ static void nvme_alloc_ns(struct nvme_ctrl *ctrl, unsigned nsid)
|
|||
disk->fops = &nvme_fops;
|
||||
disk->private_data = ns;
|
||||
disk->queue = ns->queue;
|
||||
disk->driverfs_dev = ctrl->device;
|
||||
disk->flags = GENHD_FL_EXT_DEVT;
|
||||
sprintf(disk->disk_name, "nvme%dn%d", ctrl->instance, ns->instance);
|
||||
|
||||
|
@ -1677,7 +1676,7 @@ static void nvme_alloc_ns(struct nvme_ctrl *ctrl, unsigned nsid)
|
|||
if (ns->type == NVME_NS_LIGHTNVM)
|
||||
return;
|
||||
|
||||
add_disk(ns->disk);
|
||||
device_add_disk(ctrl->device, ns->disk);
|
||||
if (sysfs_create_group(&disk_to_dev(ns->disk)->kobj,
|
||||
&nvme_ns_attr_group))
|
||||
pr_warn("%s: failed to create sysfs group for identification\n",
|
||||
|
|
|
@ -45,7 +45,6 @@ int dasd_gendisk_alloc(struct dasd_block *block)
|
|||
gdp->major = DASD_MAJOR;
|
||||
gdp->first_minor = base->devindex << DASD_PARTN_BITS;
|
||||
gdp->fops = &dasd_device_operations;
|
||||
gdp->driverfs_dev = &base->cdev->dev;
|
||||
|
||||
/*
|
||||
* Set device name.
|
||||
|
@ -76,7 +75,7 @@ int dasd_gendisk_alloc(struct dasd_block *block)
|
|||
gdp->queue = block->request_queue;
|
||||
block->gdp = gdp;
|
||||
set_capacity(block->gdp, 0);
|
||||
add_disk(block->gdp);
|
||||
device_add_disk(&base->cdev->dev, block->gdp);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -615,7 +615,6 @@ dcssblk_add_store(struct device *dev, struct device_attribute *attr, const char
|
|||
dev_info->dcssblk_queue = blk_alloc_queue(GFP_KERNEL);
|
||||
dev_info->gd->queue = dev_info->dcssblk_queue;
|
||||
dev_info->gd->private_data = dev_info;
|
||||
dev_info->gd->driverfs_dev = &dev_info->dev;
|
||||
blk_queue_make_request(dev_info->dcssblk_queue, dcssblk_make_request);
|
||||
blk_queue_logical_block_size(dev_info->dcssblk_queue, 4096);
|
||||
|
||||
|
@ -655,7 +654,7 @@ dcssblk_add_store(struct device *dev, struct device_attribute *attr, const char
|
|||
goto put_dev;
|
||||
|
||||
get_device(&dev_info->dev);
|
||||
add_disk(dev_info->gd);
|
||||
device_add_disk(&dev_info->dev, dev_info->gd);
|
||||
|
||||
switch (dev_info->segment_type) {
|
||||
case SEG_TYPE_SR:
|
||||
|
|
|
@ -512,7 +512,6 @@ int scm_blk_dev_setup(struct scm_blk_dev *bdev, struct scm_device *scmdev)
|
|||
goto out_queue;
|
||||
|
||||
rq->queuedata = scmdev;
|
||||
bdev->gendisk->driverfs_dev = &scmdev->dev;
|
||||
bdev->gendisk->private_data = scmdev;
|
||||
bdev->gendisk->fops = &scm_blk_devops;
|
||||
bdev->gendisk->queue = rq;
|
||||
|
@ -531,7 +530,7 @@ int scm_blk_dev_setup(struct scm_blk_dev *bdev, struct scm_device *scmdev)
|
|||
|
||||
/* 512 byte sectors */
|
||||
set_capacity(bdev->gendisk, scmdev->size >> 9);
|
||||
add_disk(bdev->gendisk);
|
||||
device_add_disk(&scmdev->dev, bdev->gendisk);
|
||||
return 0;
|
||||
|
||||
out_queue:
|
||||
|
|
|
@ -2994,7 +2994,6 @@ static void sd_probe_async(void *data, async_cookie_t cookie)
|
|||
|
||||
sd_revalidate_disk(gd);
|
||||
|
||||
gd->driverfs_dev = &sdp->sdev_gendev;
|
||||
gd->flags = GENHD_FL_EXT_DEVT;
|
||||
if (sdp->removable) {
|
||||
gd->flags |= GENHD_FL_REMOVABLE;
|
||||
|
@ -3002,7 +3001,7 @@ static void sd_probe_async(void *data, async_cookie_t cookie)
|
|||
}
|
||||
|
||||
blk_pm_runtime_init(sdp->request_queue, dev);
|
||||
add_disk(gd);
|
||||
device_add_disk(dev, gd);
|
||||
if (sdkp->capacity)
|
||||
sd_dif_config_host(sdkp);
|
||||
|
||||
|
|
|
@ -713,7 +713,6 @@ static int sr_probe(struct device *dev)
|
|||
get_capabilities(cd);
|
||||
sr_vendor_init(cd);
|
||||
|
||||
disk->driverfs_dev = &sdev->sdev_gendev;
|
||||
set_capacity(disk, cd->capacity);
|
||||
disk->private_data = &cd->driver;
|
||||
disk->queue = sdev->request_queue;
|
||||
|
@ -730,7 +729,7 @@ static int sr_probe(struct device *dev)
|
|||
|
||||
dev_set_drvdata(dev, cd);
|
||||
disk->flags |= GENHD_FL_REMOVABLE;
|
||||
add_disk(disk);
|
||||
device_add_disk(&sdev->sdev_gendev, disk);
|
||||
|
||||
sdev_printk(KERN_DEBUG, sdev,
|
||||
"Attached scsi CD-ROM %s\n", cd->cdi.name);
|
||||
|
|
|
@ -205,7 +205,6 @@ struct gendisk {
|
|||
void *private_data;
|
||||
|
||||
int flags;
|
||||
struct device *driverfs_dev; // FIXME: remove
|
||||
struct kobject *slave_dir;
|
||||
|
||||
struct timer_rand_state *random;
|
||||
|
@ -414,7 +413,12 @@ static inline void free_part_info(struct hd_struct *part)
|
|||
extern void part_round_stats(int cpu, struct hd_struct *part);
|
||||
|
||||
/* block/genhd.c */
|
||||
extern void add_disk(struct gendisk *disk);
|
||||
extern void device_add_disk(struct device *parent, struct gendisk *disk);
|
||||
static inline void add_disk(struct gendisk *disk)
|
||||
{
|
||||
device_add_disk(NULL, disk);
|
||||
}
|
||||
|
||||
extern void del_gendisk(struct gendisk *gp);
|
||||
extern struct gendisk *get_gendisk(dev_t dev, int *partno);
|
||||
extern struct block_device *bdget_disk(struct gendisk *disk, int partno);
|
||||
|
|
Загрузка…
Ссылка в новой задаче