Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 91130 Details for
Bug 99564
sys-fs/udev hangs when running udevstart at boot, due to non-existant groups and nss search timeouts
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Stop udev resolving names when loading rules
udev-noresolve.patch (text/plain), 3.76 KB, created by
Roy Marples (RETIRED)
on 2006-07-07 06:51:31 UTC
(
hide
)
Description:
Stop udev resolving names when loading rules
Filename:
MIME Type:
Creator:
Roy Marples (RETIRED)
Created:
2006-07-07 06:51:31 UTC
Size:
3.76 KB
patch
obsolete
>diff -u udev-094.orig/udev.c udev-094/udev.c >--- udev-094.orig/udev.c 2006-07-07 14:39:34.000000000 +0100 >+++ udev-094/udev.c 2006-07-07 14:41:39.000000000 +0100 >@@ -128,7 +128,7 @@ > } > > sysfs_init(); >- udev_rules_init(&rules, 0); >+ udev_rules_init(&rules); > > dev = sysfs_device_get(devpath); > if (dev == NULL) { >diff -u udev-094.orig/udevd.c udev-094/udevd.c >--- udev-094.orig/udevd.c 2006-07-07 14:39:34.000000000 +0100 >+++ udev-094/udevd.c 2006-07-07 14:41:56.000000000 +0100 >@@ -908,7 +908,7 @@ > > /* parse the rules and keep it in memory */ > sysfs_init(); >- udev_rules_init(&rules, 1); >+ udev_rules_init(&rules); > > export_initial_seqnum(); > >@@ -1088,7 +1088,7 @@ > if (reload_config) { > reload_config = 0; > udev_rules_cleanup(&rules); >- udev_rules_init(&rules, 1); >+ udev_rules_init(&rules); > } > > /* forked child has returned */ >diff -u udev-094.orig/udev_rules.h udev-094/udev_rules.h >--- udev-094.orig/udev_rules.h 2006-07-07 14:39:34.000000000 +0100 >+++ udev-094/udev_rules.h 2006-07-07 14:41:27.000000000 +0100 >@@ -98,10 +98,9 @@ > char *buf; > size_t bufsize; > size_t current; >- int resolve_names; > }; > >-extern int udev_rules_init(struct udev_rules *rules, int resolve_names); >+extern int udev_rules_init(struct udev_rules *rules); > extern void udev_rules_cleanup(struct udev_rules *rules); > > extern void udev_rules_iter_init(struct udev_rules *rules); >diff -u udev-094.orig/udev_rules_parse.c udev-094/udev_rules_parse.c >--- udev-094.orig/udev_rules_parse.c 2006-07-07 14:39:34.000000000 +0100 >+++ udev-094/udev_rules_parse.c 2006-07-07 14:41:00.000000000 +0100 >@@ -473,38 +473,12 @@ > > if (strcasecmp(key, "OWNER") == 0) { > valid = 1; >- if (rules->resolve_names && (!strchr(value, '$') && !strchr(value, '%'))) { >- char *endptr; >- strtoul(value, &endptr, 10); >- if (endptr[0] != '\0') { >- char owner[32]; >- uid_t uid = lookup_user(value); >- dbg("replacing username='%s' by id=%i", value, uid); >- sprintf(owner, "%u", (unsigned int) uid); >- add_rule_key(rule, &rule->owner, operation, owner); >- continue; >- } >- } >- > add_rule_key(rule, &rule->owner, operation, value); > continue; > } > > if (strcasecmp(key, "GROUP") == 0) { > valid = 1; >- if (rules->resolve_names && (!strchr(value, '$') && !strchr(value, '%'))) { >- char *endptr; >- strtoul(value, &endptr, 10); >- if (endptr[0] != '\0') { >- char group[32]; >- gid_t gid = lookup_group(value); >- dbg("replacing groupname='%s' by id=%i", value, gid); >- sprintf(group, "%u", (unsigned int) gid); >- add_rule_key(rule, &rule->group, operation, group); >- continue; >- } >- } >- > add_rule_key(rule, &rule->group, operation, value); > continue; > } >@@ -637,13 +611,12 @@ > return retval; > } > >-int udev_rules_init(struct udev_rules *rules, int resolve_names) >+int udev_rules_init(struct udev_rules *rules) > { > struct stat stats; > int retval; > > memset(rules, 0x00, sizeof(struct udev_rules)); >- rules->resolve_names = resolve_names; > > /* parse rules file or all matching files in directory */ > if (stat(udev_rules_filename, &stats) != 0) >diff -u udev-094.orig/udevstart.c udev-094/udevstart.c >--- udev-094.orig/udevstart.c 2006-07-07 14:39:34.000000000 +0100 >+++ udev-094/udevstart.c 2006-07-07 14:42:25.000000000 +0100 >@@ -361,7 +361,7 @@ > alarm(UDEV_ALARM_TIMEOUT); > > sysfs_init(); >- udev_rules_init(&rules, 1); >+ udev_rules_init(&rules); > > udev_scan_class(&device_list); > udev_scan_block(&device_list); >diff -u udev-094.orig/udevtest.c udev-094/udevtest.c >--- udev-094.orig/udevtest.c 2006-07-07 14:39:34.000000000 +0100 >+++ udev-094/udevtest.c 2006-07-07 14:42:11.000000000 +0100 >@@ -83,7 +83,7 @@ > devpath = argv[1]; > > sysfs_init(); >- udev_rules_init(&rules, 0); >+ udev_rules_init(&rules); > > dev = sysfs_device_get(devpath); > if (dev == NULL) {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 99564
: 91130 |
93451