summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@gmail.com>2015-03-24 00:52:59 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2015-03-24 00:12:03 -0400
commitb0438462089d1e1460429a57718305de08985908 (patch)
tree302daa5456cb4898d7370e6740bbd5c53d1a5776 /src/shared
parentea342a99fd4bbdb25e690186b25a8f1c88ed61b3 (diff)
fstab-generator: Support root on tmpfs (or other deviceless FS)
This allows for stateless systems.
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/util.c29
-rw-r--r--src/shared/util.h1
2 files changed, 30 insertions, 0 deletions
diff --git a/src/shared/util.c b/src/shared/util.c
index ad548da82a..2d50f73dc4 100644
--- a/src/shared/util.c
+++ b/src/shared/util.c
@@ -1713,6 +1713,35 @@ bool fstype_is_network(const char *fstype) {
return nulstr_contains(table, fstype);
}
+bool fstype_is_deviceless(const char *fstype) {
+ static const char table[] =
+ "autofs\0"
+ "bdev\0"
+ "cgroup\0"
+ "configfs\0"
+ "cpuset\0"
+ "debugfs\0"
+ "devpts\0"
+ "devtmpfs\0"
+ "efivarfs\0"
+ "hugetlbfs\0"
+ "mqueue\0"
+ "overlayfs\0"
+ "pipefs\0"
+ "proc\0"
+ "pstore\0"
+ "ramfs\0"
+ "rootfs\0"
+ "rpc_pipefs\0"
+ "securityfs\0"
+ "sockfs\0"
+ "sysfs\0"
+ "tmpfs\0";
+
+ return !isempty(fstype) && (
+ nulstr_contains(table, fstype) || fstype_is_network(fstype));
+}
+
int chvt(int vt) {
_cleanup_close_ int fd;
diff --git a/src/shared/util.h b/src/shared/util.h
index 29e85bb7e1..b5f44b8a1f 100644
--- a/src/shared/util.h
+++ b/src/shared/util.h
@@ -409,6 +409,7 @@ int fd_cloexec(int fd, bool cloexec);
int close_all_fds(const int except[], unsigned n_except);
bool fstype_is_network(const char *fstype);
+bool fstype_is_deviceless(const char *fstype);
int chvt(int vt);