diff options
author | tklauser@access.unizh.ch <tklauser@access.unizh.ch> | 2005-04-12 01:05:03 +0200 |
---|---|---|
committer | Greg KH <gregkh@suse.de> | 2005-04-26 23:55:01 -0700 |
commit | 15139b8a623748e7d24b18f12e920d94743d8c52 (patch) | |
tree | 84f4a13f1d12f5188df1d8968c37ae0e91e5abe8 | |
parent | 05bd6efb41b6a80378cc4f6e7427a302b4953541 (diff) |
[PATCH] fix stupid all_partitions bug
> On Mon, 2005-04-11 at 14:55 +0200, Norbert Preining wrote:
> > On Mon, 11 Apr 2005, Kay Sievers wrote:
> > > > brw-rw---- 1 root root 8, 0 2005-04-10 14:58 /dev/sdcard
> > > > brw-rw---- 1 root root 8, 1 2005-04-10 14:58 /dev/sdcard1
> > > > brw-rw---- 1 root root 8, 1 2005-04-10 14:58 /dev/sdcard2
> > > > brw-rw---- 1 root root 8, 1 2005-04-10 14:58 /dev/sdcard3
> > >
> > > This looks broken.
> >
> > Good to hear.
Yeah, I guess it's broken. In create_node() in udev_add.c there is
always added 1 to the minor number, thus the error. The attached patch
should fix this.
-rw-r--r-- | test/udev-test.pl | 1 | ||||
-rw-r--r-- | udev_add.c | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/test/udev-test.pl b/test/udev-test.pl index c1dc8b2f1b..3172d3302f 100644 --- a/test/udev-test.pl +++ b/test/udev-test.pl @@ -418,6 +418,7 @@ EOF subsys => "block", devpath => "/block/sda", exp_name => "boot_disk15" , + exp_majorminor => "8:15", rules => <<EOF BUS=="scsi", SYSFS{vendor}=="IBM-ESXS", NAME{all_partitions}="boot_disk" EOF diff --git a/udev_add.c b/udev_add.c index 5fff3836e3..b1e7265a3c 100644 --- a/udev_add.c +++ b/udev_add.c @@ -182,7 +182,7 @@ static int create_node(struct udevice *udev, struct sysfs_class_device *class_de snprintf(partitionname, sizeof(partitionname), "%s%d", filename, i); partitionname[sizeof(partitionname)-1] = '\0'; - part_devt = makedev(major(udev->devt), minor(udev->devt)+1); + part_devt = makedev(major(udev->devt), minor(udev->devt) + i); udev_make_node(udev, partitionname, part_devt, udev->mode, uid, gid); } } |