** 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

Reply via email to