summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-05-16 18:13:58 +0200
committerLennart Poettering <lennart@poettering.net>2010-05-16 18:13:58 +0200
commit8407a5d0183d9513349754f1eac86e2fdec8bd76 (patch)
tree23f0ef1f45dfb5a0d904f215973a062045547e0b
parentd4e6a6f66b7b3c797a1446816b8512d82c92278f (diff)
swap: don't add mount links for swap devices
-rw-r--r--swap.c3
-rw-r--r--unit.c2
-rw-r--r--util.c10
-rw-r--r--util.h2
4 files changed, 16 insertions, 1 deletions
diff --git a/swap.c b/swap.c
index 174ce1dc0e..bd49e1ea2b 100644
--- a/swap.c
+++ b/swap.c
@@ -70,6 +70,9 @@ int swap_add_one_mount_link(Swap *s, Mount *m) {
m->meta.load_state != UNIT_LOADED)
return 0;
+ if (is_device_path(s->what))
+ return 0;
+
if (!path_startswith(s->what, m->where))
return 0;
diff --git a/unit.c b/unit.c
index ee0c120b24..1959b1b940 100644
--- a/unit.c
+++ b/unit.c
@@ -1864,7 +1864,7 @@ int unit_add_node_link(Unit *u, const char *what, bool wants) {
/* Adds in links to the device node that this unit is based on */
- if (!path_startswith(what, "/dev/") && !path_startswith(what, "/sys/"))
+ if (!is_device_path(what))
return 0;
if (!(e = unit_name_build_escape(what+1, NULL, ".device")))
diff --git a/util.c b/util.c
index 5e3654d1d1..f7d538aaac 100644
--- a/util.c
+++ b/util.c
@@ -1927,6 +1927,16 @@ bool is_clean_exit(int code, int status) {
return false;
}
+bool is_device_path(const char *path) {
+
+ /* Returns true on paths that refer to a device, either in
+ * sysfs or in /dev */
+
+ return
+ path_startswith(path, "/dev/") ||
+ path_startswith(path, "/sys/");
+}
+
static const char *const ioprio_class_table[] = {
[IOPRIO_CLASS_NONE] = "none",
[IOPRIO_CLASS_RT] = "realtime",
diff --git a/util.h b/util.h
index d0fc319e03..a77a952ed6 100644
--- a/util.h
+++ b/util.h
@@ -231,6 +231,8 @@ ssize_t loop_read(int fd, void *buf, size_t nbytes);
int path_is_mount_point(const char *path);
+bool is_device_path(const char *path);
+
extern char * __progname;
const char *ioprio_class_to_string(int i);