chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
19befb2
)
udev: do not skip the execution of RUN when renaming a network device fails
author
Kay Sievers
<kay@vrfy.org>
Tue, 13 May 2014 22:34:49 +0000
(
00:34
+0200)
committer
Kay Sievers
<kay@vrfy.org>
Thu, 15 May 2014 08:32:26 +0000
(10:32 +0200)
src/test/test-udev.c
patch
|
blob
|
history
src/udev/udev-event.c
patch
|
blob
|
history
src/udev/udev.h
patch
|
blob
|
history
src/udev/udevadm-test.c
patch
|
blob
|
history
src/udev/udevd.c
patch
|
blob
|
history
diff --git
a/src/test/test-udev.c
b/src/test/test-udev.c
index b0647441f0bc7e3ced12266eeece6ef7c193495e..b057cc8c0f98fa4eb05c9357127cbd85734d2ecc 100644
(file)
--- a/
src/test/test-udev.c
+++ b/
src/test/test-udev.c
@@
-155,9
+155,8
@@
int main(int argc, char *argv[]) {
}
}
}
}
- err = udev_event_execute_rules(event, rules, &sigmask_orig);
- if (err == 0)
- udev_event_execute_run(event, NULL);
+ udev_event_execute_rules(event, rules, &sigmask_orig);
+ udev_event_execute_run(event, NULL);
out:
if (event != NULL && event->fd_signal >= 0)
close(event->fd_signal);
out:
if (event != NULL && event->fd_signal >= 0)
close(event->fd_signal);
diff --git
a/src/udev/udev-event.c
b/src/udev/udev-event.c
index 2cab42bbc692ac0193234df4d7c48edea8e66609..5213a4abaa939b77ef559db847ba989d82a19f4d 100644
(file)
--- a/
src/udev/udev-event.c
+++ b/
src/udev/udev-event.c
@@
-776,13
+776,12
@@
static int rename_netif(struct udev_event *event)
return r;
}
return r;
}
-
int
udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask)
+
void
udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigmask)
{
struct udev_device *dev = event->dev;
{
struct udev_device *dev = event->dev;
- int err = 0;
if (udev_device_get_subsystem(dev) == NULL)
if (udev_device_get_subsystem(dev) == NULL)
- return
-1
;
+ return;
if (streq(udev_device_get_action(dev), "remove")) {
udev_device_read_db(dev, NULL);
if (streq(udev_device_get_action(dev), "remove")) {
udev_device_read_db(dev, NULL);
@@
-816,9
+815,10
@@
int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules,
event->name != NULL && !streq(event->name, udev_device_get_sysname(dev))) {
char syspath[UTIL_PATH_SIZE];
char *pos;
event->name != NULL && !streq(event->name, udev_device_get_sysname(dev))) {
char syspath[UTIL_PATH_SIZE];
char *pos;
+ int r;
-
er
r = rename_netif(event);
- if (
err =
= 0) {
+ r = rename_netif(event);
+ if (
r >
= 0) {
log_debug("renamed netif to '%s'", event->name);
/* remember old name */
log_debug("renamed netif to '%s'", event->name);
/* remember old name */
@@
-881,7
+881,6
@@
int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules,
udev_device_unref(event->dev_db);
event->dev_db = NULL;
}
udev_device_unref(event->dev_db);
event->dev_db = NULL;
}
- return err;
}
void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask)
}
void udev_event_execute_run(struct udev_event *event, const sigset_t *sigmask)
diff --git
a/src/udev/udev.h
b/src/udev/udev.h
index 936adfbf5efce4bd2243a50bf97e785fff906ba6..62538bcb8df270fdaa4200d8638bdb90d2c74c4d 100644
(file)
--- a/
src/udev/udev.h
+++ b/
src/udev/udev.h
@@
-84,7
+84,7
@@
int udev_event_apply_subsys_kernel(struct udev_event *event, const char *string,
int udev_event_spawn(struct udev_event *event,
const char *cmd, char **envp, const sigset_t *sigmask,
char *result, size_t ressize);
int udev_event_spawn(struct udev_event *event,
const char *cmd, char **envp, const sigset_t *sigmask,
char *result, size_t ressize);
-
int
udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset);
+
void
udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, const sigset_t *sigset);
void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset);
int udev_build_argv(struct udev *udev, char *cmd, int *argc, char *argv[]);
void udev_event_execute_run(struct udev_event *event, const sigset_t *sigset);
int udev_build_argv(struct udev *udev, char *cmd, int *argc, char *argv[]);
diff --git
a/src/udev/udevadm-test.c
b/src/udev/udevadm-test.c
index 6cd311b27db4ca559ceb14da3068abd359013107..6a2f5489feb5a5e384e8ee76e1c896c5c2b87ef0 100644
(file)
--- a/
src/udev/udevadm-test.c
+++ b/
src/udev/udevadm-test.c
@@
-43,7
+43,6
@@
static int adm_test(struct udev *udev, int argc, char *argv[])
_cleanup_udev_device_unref_ struct udev_device *dev = NULL;
_cleanup_udev_event_unref_ struct udev_event *event = NULL;
sigset_t mask, sigmask_orig;
_cleanup_udev_device_unref_ struct udev_device *dev = NULL;
_cleanup_udev_event_unref_ struct udev_event *event = NULL;
sigset_t mask, sigmask_orig;
- int err;
int rc = 0, c;
static const struct option options[] = {
int rc = 0, c;
static const struct option options[] = {
@@
-139,18
+138,16
@@
static int adm_test(struct udev *udev, int argc, char *argv[])
goto out;
}
goto out;
}
-
err =
udev_event_execute_rules(event, rules, &sigmask_orig);
+ udev_event_execute_rules(event, rules, &sigmask_orig);
udev_list_entry_foreach(entry, udev_device_get_properties_list_entry(dev))
printf("%s=%s\n", udev_list_entry_get_name(entry), udev_list_entry_get_value(entry));
udev_list_entry_foreach(entry, udev_device_get_properties_list_entry(dev))
printf("%s=%s\n", udev_list_entry_get_name(entry), udev_list_entry_get_value(entry));
- if (err == 0) {
- udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) {
- char program[UTIL_PATH_SIZE];
+ udev_list_entry_foreach(entry, udev_list_get_entry(&event->run_list)) {
+ char program[UTIL_PATH_SIZE];
- udev_event_apply_format(event, udev_list_entry_get_name(entry), program, sizeof(program));
- printf("run: '%s'\n", program);
- }
+ udev_event_apply_format(event, udev_list_entry_get_name(entry), program, sizeof(program));
+ printf("run: '%s'\n", program);
}
out:
if (event != NULL && event->fd_signal >= 0)
}
out:
if (event != NULL && event->fd_signal >= 0)
diff --git
a/src/udev/udevd.c
b/src/udev/udevd.c
index aecd208d40cd99f46a07a5d10d4faa52645d313d..bc0696c0ee0447ed4ce0e7faf077f082752e5e62 100644
(file)
--- a/
src/udev/udevd.c
+++ b/
src/udev/udevd.c
@@
-307,10
+307,9
@@
static void worker_new(struct event *event)
}
/* apply rules, create node, symlinks */
}
/* apply rules, create node, symlinks */
-
err =
udev_event_execute_rules(udev_event, rules, &sigmask_orig);
+ udev_event_execute_rules(udev_event, rules, &sigmask_orig);
- if (err == 0)
- udev_event_execute_run(udev_event, &sigmask_orig);
+ udev_event_execute_run(udev_event, &sigmask_orig);
/* apply/restore inotify watch */
if (err == 0 && udev_event->inotify_watch) {
/* apply/restore inotify watch */
if (err == 0 && udev_event->inotify_watch) {