Message ID | 20230711114821.1273-1-a3at.mail@gmail.com |
---|---|
State | New |
Headers | show |
Series | Fix writing maj:min to /sys/power/resume (fixes hiberation with systemd) | expand |
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) {
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@lst.de> Signed-off-by: Azat Khuzhin <a3at.mail@gmail.com> --- kernel/power/hibernate.c | 1 + 1 file changed, 1 insertion(+)