summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAzat Khuzhin <a3at.mail@gmail.com>2023-07-11 13:48:12 +0200
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2023-07-11 19:58:08 +0200
commitc9e4bf607d8c431452ef362c00e62ce999bbae93 (patch)
treef2fe408df70ef56eeb4f81ec4e624adf77d0cea2
parentLinux 6.5-rc1 (diff)
downloadlinux-c9e4bf607d8c431452ef362c00e62ce999bbae93.tar.xz
linux-c9e4bf607d8c431452ef362c00e62ce999bbae93.zip
PM: hibernate: Fix writing maj:min to /sys/power/resume
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") Signed-off-by: Azat Khuzhin <a3at.mail@gmail.com> Reviewed-by: Christoph Hellwig <hch@lst.de> [ rjw: Subject edits ] Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r--kernel/power/hibernate.c1
1 files changed, 1 insertions, 0 deletions
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) {