[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230711114821.1273-1-a3at.mail@gmail.com>
Date: Tue, 11 Jul 2023 13:48:12 +0200
From: Azat Khuzhin <a3at.mail@...il.com>
To: linux-pm@...r.kernel.org, linux-kernel@...r.kernel.org
Cc: Azat Khuzhin <a3at.mail@...il.com>, Christoph Hellwig <hch@....de>
Subject: [PATCH] Fix writing maj:min to /sys/power/resume (fixes hiberation with systemd)
resume_store() first calls lookup_bdev() and after tries to handle
maj:min, but it does not reset the error before, hence if you will write
maj:min you will get ENOENT:
# echo 259:2 >| /sys/power/resume
bash: echo: write error: No such file or directory
This also should fix hiberation via systemd, since it uses this way.
Fixes: 1e8c813b083c4 ("PM: hibernate: don't use early_lookup_bdev in resume_store")
Cc: Christoph Hellwig <hch@....de>
Signed-off-by: Azat Khuzhin <a3at.mail@...il.com>
---
kernel/power/hibernate.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
index f62e89d0d906..e1b4bfa938dd 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
@@ -1179,6 +1179,7 @@ static ssize_t resume_store(struct kobject *kobj, struct kobj_attribute *attr,
unsigned maj, min, offset;
char *p, dummy;
+ error = 0;
if (sscanf(name, "%u:%u%c", &maj, &min, &dummy) == 2 ||
sscanf(name, "%u:%u:%u:%c", &maj, &min, &offset,
&dummy) == 3) {
--
2.41.0
Powered by blists - more mailing lists