Control: reopen -1 Control: forwarded -1 https://github.com/systemd/systemd/pull/28048
Ha ha. The person whom this affected got back to me after upgrading to 252.11-1, and it doesn't work. Odd, since we tested the patch, and applying it before did work. Turns out: there's two identical conditions, and, when testing, I edited the correct XBOOTLDR one (around line 800) ‒ and distributed that to the reporter ‒ but in my systemd upstream check-out, I edited the one for the ESP around line 500: nabijaczleweli@tarta:~/uwu/s/systemd-252.11$ grep -n 'This one is not it' src/shared/find-esp.c 530: if (!IN_SET(r, -ENOENT, -EADDRNOTAVAIL, -ENOTDIR, -ENOTTY)) /* This one is not it */ 817: if (!IN_SET(r, -ENOENT, -EADDRNOTAVAIL, -ENOTDIR)) /* This one is not it */ this, naturally, doesn't work, and not one of the five people that looked at it noticed that the analysis and mechanics are correct, but the diff is applied to the wrong hunk. I'd opened a fixed PR, applying the patch to the second, required, condition as well, at forwarded-to. I'm attaching an equivalent version, based on the systemd-252.11 dsc; I've verified myself that applying it to 252.11-1 fixes the issue (see forwarded-to). Sorry for the churn; I hope this can still make it into a bookworm point release. Best, наб
--- systemd-252.11.orig/src/shared/find-esp.c +++ systemd-252.11/src/shared/find-esp.c @@ -814,7 +814,7 @@ int find_xbootldr_and_warn( r = verify_xbootldr(p, /* searching= */ true, unprivileged_mode, ret_uuid, ret_devid); if (r >= 0) goto found; - if (!IN_SET(r, -ENOENT, -EADDRNOTAVAIL, -ENOTDIR)) /* This one is not it */ + if (!IN_SET(r, -ENOENT, -EADDRNOTAVAIL, -ENOTDIR, -ENOTTY)) /* This one is not it */ return r; return -ENOKEY;
signature.asc
Description: PGP signature