mirror of
https://github.com/systemd/systemd.git
synced 2024-12-25 01:34:28 +03:00
shared/sleep-config: exclude zram devices from hibernation candidates
On a host with sufficiently large zram but with no actual swap, logind will respond to CanHibernate() with yes. With this patch, it will correctly respond no, unless there are other swap devices to consider.
This commit is contained in:
parent
54fe2ce1b9
commit
411ae92b40
@ -21,6 +21,7 @@
|
||||
#include "log.h"
|
||||
#include "macro.h"
|
||||
#include "parse-util.h"
|
||||
#include "path-util.h"
|
||||
#include "sleep-config.h"
|
||||
#include "string-util.h"
|
||||
#include "strv.h"
|
||||
@ -201,10 +202,19 @@ int find_hibernate_location(char **device, char **type, size_t *size, size_t *us
|
||||
continue;
|
||||
}
|
||||
|
||||
if (streq(type_field, "partition") && endswith(dev_field, "\\040(deleted)")) {
|
||||
if (streq(type_field, "partition")) {
|
||||
if (endswith(dev_field, "\\040(deleted)")) {
|
||||
log_warning("Ignoring deleted swapfile '%s'.", dev_field);
|
||||
continue;
|
||||
}
|
||||
|
||||
const char *fn;
|
||||
fn = path_startswith(dev_field, "/dev/");
|
||||
if (fn && startswith(fn, "zram")) {
|
||||
log_debug("Ignoring compressed ram swap device '%s'.", dev_field);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (device)
|
||||
*device = TAKE_PTR(dev_field);
|
||||
if (type)
|
||||
|
Loading…
Reference in New Issue
Block a user