diff options
author | Ian Stakenvicius <axs@gentoo.org> | 2013-07-31 12:52:39 -0400 |
---|---|---|
committer | Ian Stakenvicius <axs@gentoo.org> | 2013-07-31 13:07:33 -0400 |
commit | 9a769172c3af6e9c51b7c55cb9df9fddcc13dbc6 (patch) | |
tree | 7ed816e3cf3b2cd8160e9e14723070f13d0f635e /src/libudev/strv.c | |
parent | aa417a4d83999f6d7f092161d5c411b8cbce9977 (diff) |
Revert "static-nodes: remove creation of static nodes if HAVE_LIBKMOD"
This reverts commit aa417a4d83999f6d7f092161d5c411b8cbce9977.
Preface: The kmod+tmpfiles static dev-node creation requires two commands to
be executed at runtime -- it is not something that will automatically occur
without a system's setup being explicitly designed or changed so that these
commands are executed.
Preface2: In order for the kmod+tmpfiles static dev-node creation to work
properly, that -must- be executed at startup before {systemd-,}udevd starts.
The reason for this is because udevd will only set permissions on those files
at startup, and so if udevd starts beforehand then these nodes will exist with
permissions that are (probably) too restrictive.
The function in udevd which creates static-nodes is non-fatal and only updates
mtime on the devnodes if they already exist. As such, if a system is configured
to execute kmod+tmpfiles to create static-nodes, because that must occur first,
eudev's udevd will not conflict. Also, if a system does not execute kmod+tmpfiles,
then eudev will still create the static devnodes, even if kmod-14 or higher is
installed.
There *may* be a conflict if kmod+tmpfiles is executed after udevd starts, but
as per "preface2" this is not a supported configuration.
Signed-off-by: Ian Stakenvicius <axs@gentoo.org>
Diffstat (limited to 'src/libudev/strv.c')
-rw-r--r-- | src/libudev/strv.c | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/src/libudev/strv.c b/src/libudev/strv.c index 3619701e9d..041e20d700 100644 --- a/src/libudev/strv.c +++ b/src/libudev/strv.c @@ -142,43 +142,6 @@ char **strv_new(const char *x, ...) { return r; } -int strv_push(char ***l, char *value) { - char **c; - unsigned n; - - if (!value) - return 0; - - n = strv_length(*l); - c = realloc(*l, sizeof(char*) * (n + 2)); - if (!c) - return -ENOMEM; - - c[n] = value; - c[n+1] = NULL; - - *l = c; - return 0; -} - -int strv_extend(char ***l, const char *value) { - char *v; - int r; - - if (!value) - return 0; - - v = strdup(value); - if (!v) - return -ENOMEM; - - r = strv_push(l, v); - if (r < 0) - free(v); - - return r; -} - char **strv_uniq(char **l) { char **i; |