diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-05-16 18:13:58 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-05-16 18:13:58 +0200 |
commit | 8407a5d0183d9513349754f1eac86e2fdec8bd76 (patch) | |
tree | 23f0ef1f45dfb5a0d904f215973a062045547e0b | |
parent | d4e6a6f66b7b3c797a1446816b8512d82c92278f (diff) |
swap: don't add mount links for swap devices
-rw-r--r-- | swap.c | 3 | ||||
-rw-r--r-- | unit.c | 2 | ||||
-rw-r--r-- | util.c | 10 | ||||
-rw-r--r-- | util.h | 2 |
4 files changed, 16 insertions, 1 deletions
@@ -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; @@ -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"))) @@ -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", @@ -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); |