Commit 050a4f34 authored by Jens Axboe's avatar Jens Axboe

Revert "block: remove devnode callback from struct block_device_operations"

This reverts commit 85d6ce58.

We're reinstating the pktcdvd driver, which needs this API.
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent ee4b4e22
...@@ -1201,10 +1201,21 @@ struct class block_class = { ...@@ -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 { ...@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment