[PATCHSET v30.1 02/15] xfs: improve log incompat feature handling

Darrick J. Wong
2024-03-27T01:46:50Z

Hi all,

This patchset improves the performance of log incompat feature bit
handling by making a few changes to how the filesystem handles them.
First, we now only clear the bits during a clean unmount to reduce calls
to the (expensive) upgrade function to once per bit per mount. Second,
we now only allow incompat feature upgrades for sysadmins or if the
sysadmin explicitly allows it via mount option. Currently the only log
incompat user is logged xattrs, which requires CONFIG_XFS_DEBUG=y, so
there should be no user visible impact to this change.

If you're going to start using this code, I strongly recommend pulling
from my git trees, which are linked below.

This has been running on the djcloud for months with no problems. Enjoy!
Comments and questions are, as always, welcome.

--D

kernel git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=log-incompat-permissions
---
Commits in this patchset:
* xfs: only clear log incompat flags at clean unmount
* xfs: only add log incompat features with explicit permission
---
Documentation/admin-guide/xfs.rst | 7 +++
.../filesystems/xfs/xfs-online-fsck-design.rst | 3 -
fs/xfs/xfs_log.c | 28 -------------
fs/xfs/xfs_log.h | 2 -
fs/xfs/xfs_log_priv.h | 3 -
fs/xfs/xfs_log_recover.c | 15 -------
fs/xfs/xfs_mount.c | 34 ++++++++++++++++
fs/xfs/xfs_mount.h | 9 ++++
fs/xfs/xfs_super.c | 12 +++++-
fs/xfs/xfs_xattr.c | 42 +++-----------------
10 files changed, 66 insertions(+), 89 deletions(-)