Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Revert "block: remove devnode callback from struct block_device_operations"

This reverts commit 85d6ce58e493ac8b7122e2fbe3f41b94d6ebdc11.

We're reinstating the pktcdvd driver, which needs this API.

Signed-off-by: Jens Axboe <axboe@kernel.dk>

+12
+11
block/genhd.c
··· 1201 1201 .dev_uevent = block_uevent, 1202 1202 }; 1203 1203 1204 + static char *block_devnode(struct device *dev, umode_t *mode, 1205 + kuid_t *uid, kgid_t *gid) 1206 + { 1207 + struct gendisk *disk = dev_to_disk(dev); 1208 + 1209 + if (disk->fops->devnode) 1210 + return disk->fops->devnode(disk, mode); 1211 + return NULL; 1212 + } 1213 + 1204 1214 const struct device_type disk_type = { 1205 1215 .name = "disk", 1206 1216 .groups = disk_attr_groups, 1207 1217 .release = disk_release, 1218 + .devnode = block_devnode, 1208 1219 }; 1209 1220 1210 1221 #ifdef CONFIG_PROC_FS
+1
include/linux/blkdev.h
··· 1395 1395 void (*swap_slot_free_notify) (struct block_device *, unsigned long); 1396 1396 int (*report_zones)(struct gendisk *, sector_t sector, 1397 1397 unsigned int nr_zones, report_zones_cb cb, void *data); 1398 + char *(*devnode)(struct gendisk *disk, umode_t *mode); 1398 1399 /* returns the length of the identifier or a negative errno: */ 1399 1400 int (*get_unique_id)(struct gendisk *disk, u8 id[16], 1400 1401 enum blk_unique_id id_type);