]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sleep-config: partitions can't be deleted, only files can
authorLennart Poettering <lennart@poettering.net>
Wed, 25 Jul 2018 19:41:58 +0000 (21:41 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 26 Jul 2018 09:01:29 +0000 (11:01 +0200)
This fixes something I think was basically a typo introduced in
db69869f264af2d1afcdd3e573e0e9fdd5bef065.

src/shared/sleep-config.c

index a1523e3f21342ec4c563a2d08f99025a5305779a..ed7c25828ed639459435ff2028d77ede42ba02c7 100644 (file)
@@ -194,27 +194,30 @@ int find_hibernate_location(char **device, char **type, size_t *size, size_t *us
                            "%zu "   /* used */
                            "%*i\n", /* priority */
                            &dev_field, &type_field, &size_field, &used_field);
+                if (k == EOF)
+                        break;
                 if (k != 4) {
-                        if (k == EOF)
-                                break;
-
                         log_warning("Failed to parse /proc/swaps:%u", i);
                         continue;
                 }
 
-                if (streq(type_field, "partition")) {
+                if (streq(type_field, "file")) {
+
                         if (endswith(dev_field, "\\040(deleted)")) {
-                                log_warning("Ignoring deleted swapfile '%s'.", dev_field);
+                                log_warning("Ignoring deleted swap file '%s'.", dev_field);
                                 continue;
                         }
 
+                } else if (streq(type_field, "partition")) {
                         const char *fn;
+
                         fn = path_startswith(dev_field, "/dev/");
                         if (fn && startswith(fn, "zram")) {
-                                log_debug("Ignoring compressed ram swap device '%s'.", dev_field);
+                                log_debug("Ignoring compressed RAM swap device '%s'.", dev_field);
                                 continue;
                         }
                 }
+
                 if (device)
                         *device = TAKE_PTR(dev_field);
                 if (type)