HomeFreeBSD

Linux: Fix zfs_prune panics v2

Description

Linux: Fix zfs_prune panics v2

It turns out that approach taken in the original version of the patch
was wrong. So now, we're taking approach in-line with how kernel
actually does it - when sb is being torn down, access to it
is serialized via sb->s_umount rwsem, only when that lock is taken
is it okay to work with s_flags - and the other mistake I was doing
was trying to make SB_ACTIVE work, but apparently the kernel checks
the negative variant - not SB_DYING and not SB_BORN.

Kernels pre-6.6 don't have SB_DYING, but check if sb is hashed
instead.

Signed-off-by: Pavel Snajdr <snajpa@snajpa.net>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes: #17121
(cherry picked from commit a0e62718cfcffd149b797ff9094ae2f009752f43)

Details

Provenance
Pavel Snajdr <snajpa@snajpa.net>Authored on Mar 25 2025, 10:20 PM
Tony Hutter <hutter2@llnl.gov>Committed on May 27 2025, 9:41 PM
Parents
rG8ff37c68d2ab: linux: zvols: correctly detect flush requests
Branches
Unknown
Tags
Unknown

Event Timeline

Tony Hutter <hutter2@llnl.gov> committed rG9631ecf8bd2c: Linux: Fix zfs_prune panics v2 (authored by Pavel Snajdr <snajpa@snajpa.net>).May 27 2025, 9:41 PM