** Description changed: + [Impact] - Reading /proc/sys/kernel/spl/hostid no longer works in 5.7+ kernels + Reading /proc/sys/kernel/spl/hostid no longer works in 5.7+ kernels upwards. The Fix: commit 7de4c88b39473f358add601e8c227ca9002b1bee Author: наб <[email protected]> Date: Sun Apr 11 01:18:40 2021 +0200 + linux/spl: base proc_dohostid() on proc_dostring() - linux/spl: base proc_dohostid() on proc_dostring() + This fixes /proc/sys/kernel/spl/hostid on kernels with mainline commit + 32927393dc1ccd60fb2bdc05b9e8e88753761469 ("sysctl: pass kernel pointers + to ->proc_handler") ‒ 5.7-rc1 and up - This fixes /proc/sys/kernel/spl/hostid on kernels with mainline commit - 32927393dc1ccd60fb2bdc05b9e8e88753761469 ("sysctl: pass kernel pointers - to ->proc_handler") ‒ 5.7-rc1 and up + The access_ok() check in copy_to_user() in proc_copyout_string() would + always fail, so all userspace reads and writes would fail with EINVAL - The access_ok() check in copy_to_user() in proc_copyout_string() would - always fail, so all userspace reads and writes would fail with EINVAL + proc_dostring() strips only the final new-line, + but simple_strtoul() doesn't actually need a back-trimmed string ‒ + writing "012345678 \n" is still allowed, as is "012345678zupsko", &c. - proc_dostring() strips only the final new-line, - but simple_strtoul() doesn't actually need a back-trimmed string ‒ - writing "012345678 \n" is still allowed, as is "012345678zupsko", &c. + This alters what happens when an invalid value is written ‒ + previously it'd get set to what-ever simple_strtoul() returned + (probably 0, thereby resetting it to default), now it does nothing - This alters what happens when an invalid value is written ‒ - previously it'd get set to what-ever simple_strtoul() returned - (probably 0, thereby resetting it to default), now it does nothing + Reviewed-by: Brian Behlendorf <[email protected]> + Signed-off-by: Ahelenia Ziemiańska <[email protected]> + Closes #11878 + Closes #11879 - Reviewed-by: Brian Behlendorf <[email protected]> - Signed-off-by: Ahelenia Ziemiańska <[email protected]> - Closes #11878 - Closes #11879 + + This applies cleanly for Impish and Hirsute 2.x ZFS so backporting is straight forward. + + [Test Plan] + + cat /proc/sys/kernel/spl/hostid fails without the fix. With the fix it + returns a hex string of the hostid value. + + [Where problems could occur] + + This affects just a few /proc spl interfaces so the change is a low- + impact fix. Not many folk even use these and nobody has reported this as + a bug so the number of affected users is expected to be very small. I + suspect nobody is reading the hostid from /proc as this information is + available elsewhere and it's rather an old legacy interface. + + The affected change is from upstream ZFS 2.x hence the patch applies + cleanly. + + This fix has been in upstream ZFS for several months with no reported + regressions. + + The change does not affect any core ZFS functionality. + + Regression tested against the Ubuntu ZFS regression test suite and + passed.
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1942991 Title: zfs: can't read /proc/sys/kernel/spl/hostid To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/zfs-linux/+bug/1942991/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
