summaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2009-05-29 13:42:36 +1000
committerStephen Rothwell <sfr@canb.auug.org.au>2009-05-29 13:42:36 +1000
commitd959a2e2f2aaaff6597c7a6c5e3eb1ca11d2958c (patch)
treec95dfa4a66aa7364e91ae4ac4548685a47856c2c /block
parent442831e619285a16bf5ee05e30a735b3ca8e094a (diff)
parent09b06b29d31658e856745adc687ebd484bc1a6ea (diff)
Merge branch 'quilt/driver-core'
Conflicts: init/main.c
Diffstat (limited to 'block')
-rw-r--r--block/bsg.c6
-rw-r--r--block/genhd.c10
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