diff options
author | kay.sievers@vrfy.org <kay.sievers@vrfy.org> | 2004-12-20 01:31:56 +0100 |
---|---|---|
committer | Greg KH <gregkh@suse.de> | 2005-04-26 23:19:09 -0700 |
commit | 65ab1334122b6ed427ce39f48fb40757d44f8d71 (patch) | |
tree | 331c69c08e98ca2f88c154f531549c79b458dfa8 /namedev.c | |
parent | 2a270316e4c0afa1efe98d665e2e329b7bae6c0a (diff) |
[PATCH] simplify permission application
We have only one source of permissions now, so apply the default
permissions at udev init.
Diffstat (limited to 'namedev.c')
-rw-r--r-- | namedev.c | 37 |
1 files changed, 15 insertions, 22 deletions
@@ -680,7 +680,6 @@ int namedev_name_device(struct udevice *udev, struct sysfs_class_device *class_d struct config_device *dev; char *pos; - udev->mode = 0; dbg("class_dev->name='%s'", class_dev->name); /* Figure out where the "device"-symlink is at. For char devices this will @@ -757,34 +756,28 @@ int namedev_name_device(struct udevice *udev, struct sysfs_class_device *class_d goto exit; udev->partitions = dev->partitions; - udev->mode = dev->mode; - strfieldcpy(udev->owner, dev->owner); - apply_format(udev, udev->owner, sizeof(udev->owner), class_dev, sysfs_device); - strfieldcpy(udev->group, dev->group); - apply_format(udev, udev->group, sizeof(udev->group), class_dev, sysfs_device); + if (dev->mode != 0000) + udev->mode = dev->mode; + if (dev->owner[0] != '\0') { + strfieldcpy(udev->owner, dev->owner); + apply_format(udev, udev->owner, sizeof(udev->owner), class_dev, sysfs_device); + } + if (dev->group[0] != '\0') { + strfieldcpy(udev->group, dev->group); + apply_format(udev, udev->group, sizeof(udev->group), class_dev, sysfs_device); + } + + dbg("name, '%s' is going to have owner='%s', group='%s', mode = %#o", + udev->name, udev->owner, udev->group, udev->mode); - goto perms; + goto exit; } } } /* no rule matched, so we use the kernel name */ strfieldcpy(udev->name, udev->kernel_name); - - if (udev->type == 'n') - goto exit; - -perms: - /* apply default permissions to empty fields */ - if (udev->mode == 0000) - udev->mode = default_mode; - if (udev->owner[0] == '\0') - strfieldcpy(udev->owner, default_owner); - if (udev->group[0] == '\0') - strfieldcpy(udev->group, default_group); - - dbg("name, '%s' is going to have owner='%s', group='%s', mode = %#o", - udev->name, udev->owner, udev->group, udev->mode); + dbg("no rule found, use kernel name '%s'", udev->name); exit: return 0; |