diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2009-05-29 13:42:36 +1000 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2009-05-29 13:42:36 +1000 |
commit | d959a2e2f2aaaff6597c7a6c5e3eb1ca11d2958c (patch) | |
tree | c95dfa4a66aa7364e91ae4ac4548685a47856c2c /block | |
parent | 442831e619285a16bf5ee05e30a735b3ca8e094a (diff) | |
parent | 09b06b29d31658e856745adc687ebd484bc1a6ea (diff) |
Merge branch 'quilt/driver-core'
Conflicts:
init/main.c
Diffstat (limited to 'block')
-rw-r--r-- | block/bsg.c | 6 | ||||
-rw-r--r-- | block/genhd.c | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/block/bsg.c b/block/bsg.c index 2d746e34f4c2..e7d475254248 100644 --- a/block/bsg.c +++ b/block/bsg.c @@ -1062,6 +1062,11 @@ EXPORT_SYMBOL_GPL(bsg_register_queue); static struct cdev bsg_cdev; +static char *bsg_nodename(struct device *dev) +{ + return kasprintf(GFP_KERNEL, "bsg/%s", dev_name(dev)); +} + static int __init bsg_init(void) { int ret, i; @@ -1082,6 +1087,7 @@ static int __init bsg_init(void) ret = PTR_ERR(bsg_class); goto destroy_kmemcache; } + bsg_class->nodename = bsg_nodename; ret = alloc_chrdev_region(&devid, 0, BSG_MAX_DEVS, "bsg"); if (ret) diff --git a/block/genhd.c b/block/genhd.c index fe7ccc0a618f..f4c64c2b303a 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -996,10 +996,20 @@ struct class block_class = { .name = "block", }; +static char *block_nodename(struct device *dev) +{ + struct gendisk *disk = dev_to_disk(dev); + + if (disk->nodename) + return disk->nodename(disk); + return NULL; +} + static struct device_type disk_type = { .name = "disk", .groups = disk_attr_groups, .release = disk_release, + .nodename = block_nodename, }; #ifdef CONFIG_PROC_FS |