[patch] uml: sysfs support for the uml block devices.

From: Gerd Knorr
Date: Tue Dec 07 2004 - 10:05:56 EST


$subject says all ;)

Signed-off-by: Gerd Knorr <kraxel@xxxxxxxxxxx>
---
arch/um/drivers/ubd_kern.c | 18 ++++++++++++++++++
1 files changed, 18 insertions(+)

Index: linux-2004-11-23/arch/um/drivers/ubd_kern.c
===================================================================
--- linux-2004-11-23.orig/arch/um/drivers/ubd_kern.c 2004-11-24 12:52:38.000000000 +0100
+++ linux-2004-11-23/arch/um/drivers/ubd_kern.c 2004-11-26 17:29:27.138934607 +0100
@@ -54,6 +54,8 @@
#include "mem.h"
#include "mem_kern.h"

+#define DRIVER_NAME "uml-blkdev"
+
static spinlock_t ubd_io_lock = SPIN_LOCK_UNLOCKED;
static spinlock_t ubd_lock = SPIN_LOCK_UNLOCKED;

@@ -117,6 +119,7 @@ struct ubd {
struct openflags openflags;
int no_cow;
struct cow cow;
+ struct platform_device pdev;

int map_writes;
int map_reads;
@@ -585,6 +588,14 @@ static int ubd_new_disk(int major, u64 s
sprintf(disk->devfs_name, "ubd_fake/disc%d", unit);
}

+ /* sysfs register (not for ide fake devices) */
+ if (major == MAJOR_NR) {
+ ubd_dev[unit].pdev.id = unit;
+ ubd_dev[unit].pdev.name = DRIVER_NAME;
+ platform_device_register(&ubd_dev[unit].pdev);
+ disk->driverfs_dev = &ubd_dev[unit].pdev.dev;
+ }
+
disk->private_data = &ubd_dev[unit];
disk->queue = ubd_queue;
add_disk(disk);
@@ -718,6 +729,7 @@ static int ubd_remove(char *str)
fake_gendisk[n] = NULL;
}

+ platform_device_unregister(&dev->pdev);
*dev = ((struct ubd) DEFAULT_UBD);
err = 0;
out:
@@ -740,6 +752,11 @@ static int ubd_mc_init(void)

__initcall(ubd_mc_init);

+static struct device_driver ubd_driver = {
+ .name = DRIVER_NAME,
+ .bus = &platform_bus_type,
+};
+
int ubd_init(void)
{
int i;
@@ -762,6 +779,7 @@ int ubd_init(void)
if (register_blkdev(fake_major, "ubd"))
return -1;
}
+ driver_register(&ubd_driver);
for (i = 0; i < MAX_DEV; i++)
ubd_add(i);
return 0;

--
#define printk(args...) fprintf(stderr, ## args)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/