summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--etc/udev/udev.rules.gentoo2
-rw-r--r--extras/ide-devfs.sh6
-rw-r--r--namedev.c5
3 files changed, 9 insertions, 4 deletions
diff --git a/etc/udev/udev.rules.gentoo b/etc/udev/udev.rules.gentoo
index 1809232ed0..997acb8a34 100644
--- a/etc/udev/udev.rules.gentoo
+++ b/etc/udev/udev.rules.gentoo
@@ -19,7 +19,7 @@ BUS="scsi", KERNEL="scd[a-z]", PROGRAM="/etc/udev/scripts/cdsymlinks.sh %k", SYM
# devfs-names for ide-devices (uncomment only one)
# /dev/ide/.../{disc,cd} and /dev/{cdroms,discs}/* type names
-BUS="ide", KERNEL="hd*", PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", NAME="%k", SYMLINK="%c{1} %c{2}"
+BUS="ide", KERNEL="hd*", PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", NAME="%k", SYMLINK="%c{1} %c{2}", GROUP="%c{3}"
# dri devices
KERNEL="card*", NAME="dri/card%n"
diff --git a/extras/ide-devfs.sh b/extras/ide-devfs.sh
index 4f20259480..580a751abe 100644
--- a/extras/ide-devfs.sh
+++ b/extras/ide-devfs.sh
@@ -36,11 +36,11 @@ get_dev_number() {
if [ -z "$3" ] && [ -f /proc/ide/${1}/media ]; then
MEDIA=`cat /proc/ide/${1}/media`
if [ "${MEDIA}" = "cdrom" ]; then
- echo ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/cd cdroms/cdrom`get_dev_number $1 cdrom`
+ echo ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/cd cdroms/cdrom`get_dev_number $1 cdrom` ${MEDIA}
elif [ "${MEDIA}" = "floppy" ]; then
- echo ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/disc floppies/floppy`get_dev_number $1 floppy`/disc
+ echo ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/disc floppies/floppy`get_dev_number $1 floppy`/disc ${MEDIA}
elif [ "${MEDIA}" = "disk" ]; then
- echo ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/disc discs/disc`get_dev_number $1 disk`/disc
+ echo ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/disc discs/disc`get_dev_number $1 disk`/disc ${MEDIA}
fi
else
echo ide/host${HOST}/bus${BUS}/target${TARGET}/lun0/part$3 discs/disc`get_dev_number $1 disk`/part$3
diff --git a/namedev.c b/namedev.c
index 69669709df..dca405ceba 100644
--- a/namedev.c
+++ b/namedev.c
@@ -809,6 +809,11 @@ found:
udev->partitions = dev->partitions;
udev->ignore_remove = dev->ignore_remove;
+ if (dev->group[0] != '\0') {
+ strfieldcpy(udev->group, dev->group);
+ apply_format(udev, udev->group, sizeof(udev->group), class_dev, sysfs_device);
+ }
+
/* get permissions given in rule */
set_empty_perms(udev, dev->mode,
dev->owner,