chiark / gitweb /
fstab-generator: use more appropriate checks for swap and device availability
authorLennart Poettering <lennart@poettering.net>
Mon, 5 Jan 2015 11:35:08 +0000 (12:35 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 5 Jan 2015 11:35:08 +0000 (12:35 +0100)
We always should use the same checks when deciding whether swap support
and mounting of devices is supported. Hence, let's make
fstab-generator's logic more similar to the usual logic we follow:

a) Look for /proc/swaps and no container support before activating
swaps.

b) Look for /sys being writable befire supporting device mounts.

src/fstab-generator/fstab-generator.c

index 1f34594..496657b 100644 (file)
@@ -87,6 +87,11 @@ static int add_swap(
         assert(what);
         assert(me);
 
         assert(what);
         assert(me);
 
+        if (access("/proc/swaps", F_OK) < 0) {
+                log_info("Swap not supported, ignoring fstab swap entry for %s.", what);
+                return 0;
+        }
+
         if (detect_container(NULL) > 0) {
                 log_info("Running in a container, ignoring fstab swap entry for %s.", what);
                 return 0;
         if (detect_container(NULL) > 0) {
                 log_info("Running in a container, ignoring fstab swap entry for %s.", what);
                 return 0;
@@ -355,7 +360,7 @@ static int parse_fstab(bool initrd) {
                 if (!what)
                         return log_oom();
 
                 if (!what)
                         return log_oom();
 
-                if (detect_container(NULL) > 0 && is_device_path(what)) {
+                if (is_device_path(what) && path_is_read_only_fs("sys") > 0) {
                         log_info("Running in a container, ignoring fstab device entry for %s.", what);
                         continue;
                 }
                         log_info("Running in a container, ignoring fstab device entry for %s.", what);
                         continue;
                 }