Skip to content

Commit 050a4f3

Browse files
committed
Revert "block: remove devnode callback from struct block_device_operations"
This reverts commit 85d6ce5. We're reinstating the pktcdvd driver, which needs this API. Signed-off-by: Jens Axboe <axboe@kernel.dk>
1 parent ee4b4e2 commit 050a4f3

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

block/genhd.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1201,10 +1201,21 @@ struct class block_class = {
12011201
.dev_uevent = block_uevent,
12021202
};
12031203

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+
12041214
const struct device_type disk_type = {
12051215
.name = "disk",
12061216
.groups = disk_attr_groups,
12071217
.release = disk_release,
1218+
.devnode = block_devnode,
12081219
};
12091220

12101221
#ifdef CONFIG_PROC_FS

include/linux/blkdev.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1395,6 +1395,7 @@ struct block_device_operations {
13951395
void (*swap_slot_free_notify) (struct block_device *, unsigned long);
13961396
int (*report_zones)(struct gendisk *, sector_t sector,
13971397
unsigned int nr_zones, report_zones_cb cb, void *data);
1398+
char *(*devnode)(struct gendisk *disk, umode_t *mode);
13981399
/* returns the length of the identifier or a negative errno: */
13991400
int (*get_unique_id)(struct gendisk *disk, u8 id[16],
14001401
enum blk_unique_id id_type);

0 commit comments

Comments
 (0)