Revert "block: remove devnode callback from struct block_device_operations"
This reverts commit 85d6ce58e4
.
We're reinstating the pktcdvd driver, which needs this API.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Родитель
ee4b4e2248
Коммит
050a4f341f
|
@ -1201,10 +1201,21 @@ struct class block_class = {
|
||||||
.dev_uevent = block_uevent,
|
.dev_uevent = block_uevent,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static char *block_devnode(struct device *dev, umode_t *mode,
|
||||||
|
kuid_t *uid, kgid_t *gid)
|
||||||
|
{
|
||||||
|
struct gendisk *disk = dev_to_disk(dev);
|
||||||
|
|
||||||
|
if (disk->fops->devnode)
|
||||||
|
return disk->fops->devnode(disk, mode);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
const struct device_type disk_type = {
|
const struct device_type disk_type = {
|
||||||
.name = "disk",
|
.name = "disk",
|
||||||
.groups = disk_attr_groups,
|
.groups = disk_attr_groups,
|
||||||
.release = disk_release,
|
.release = disk_release,
|
||||||
|
.devnode = block_devnode,
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
|
|
|
@ -1395,6 +1395,7 @@ struct block_device_operations {
|
||||||
void (*swap_slot_free_notify) (struct block_device *, unsigned long);
|
void (*swap_slot_free_notify) (struct block_device *, unsigned long);
|
||||||
int (*report_zones)(struct gendisk *, sector_t sector,
|
int (*report_zones)(struct gendisk *, sector_t sector,
|
||||||
unsigned int nr_zones, report_zones_cb cb, void *data);
|
unsigned int nr_zones, report_zones_cb cb, void *data);
|
||||||
|
char *(*devnode)(struct gendisk *disk, umode_t *mode);
|
||||||
/* returns the length of the identifier or a negative errno: */
|
/* returns the length of the identifier or a negative errno: */
|
||||||
int (*get_unique_id)(struct gendisk *disk, u8 id[16],
|
int (*get_unique_id)(struct gendisk *disk, u8 id[16],
|
||||||
enum blk_unique_id id_type);
|
enum blk_unique_id id_type);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче