[GIT PULL] gfs2 changes

From: Andreas Gruenbacher
Date: Mon Jul 15 2024 - 13:48:29 EST


Dear Linus,

please consider pulling the following gfs2 fixes and cleanups:

* The first 15 of these patches rework the glock refcounting and LRU list
handling to be more sensible.

* The following 13 patches clean up the quota code, add some missing locking,
and work around the on-disk corruption that the reverted patch "gfs2: ignore
negated quota changes" causes.

* The final patch cleans up the glock demote logic in glock_work_func().

Thanks,
Andreas


The following changes since commit 1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0:

Linux 6.10-rc1 (2024-05-26 15:20:12 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git tags/gfs2-v6.10-rc1-fixes

for you to fetch changes up to f75efefb6db305b5b5c56a9b9ae2d72b54f20780:

gfs2: Clean up glock demote logic (2024-07-09 10:40:03 +0200)

----------------------------------------------------------------
gfs2 fixes and cleanups

- Revise the glock reference counting model

- Several quota related fixes

- Clean up the glock demote logic

----------------------------------------------------------------
Andreas Gruenbacher (29):
gfs2: Remove unnecessary function prototype
gfs2: Remove useless return statement in run_queue
gfs2: Rename GLF_FREEING to GLF_UNLOCKED
gfs2: Rename GLF_REPLY_PENDING to GLF_HAVE_REPLY
gfs2: Rename GLF_FROZEN to GLF_HAVE_FROZEN_REPLY
gfs2: Rename handle_callback to request_demote
gfs2: Update glocks documentation
gfs2: Remove outdated comment in glock_work_func
gfs2: Invert the GLF_INITIAL flag
gfs2: gfs2_glock_get cleanup
gfs2: Report when glocks cannot be freed for a long time
gfs2: Switch to a per-filesystem glock workqueue
gfs2: Revise glock reference counting model
Revert "GFS2: Don't add all glocks to the lru"
gfs2: Get rid of demote_ok checks
gfs2: Minor gfs2_quota_init error path cleanup
gfs2: Check quota consistency on mount
gfs2: Revert "introduce qd_bh_get_or_undo"
gfs2: qd_check_sync cleanups
gfs2: Revert "ignore negated quota changes"
gfs2: Revert "Add quota_change type"
gfs2: Fix and clean up function do_qc
gfs2: quota need_sync cleanup
gfs2: Fold qd_fish into gfs2_quota_sync
gfs2: Add some missing quota locking
gfs2: Get rid of some unnecessary quota locking
gfs2: Be more careful with the quota sync generation
gfs2: Revert "check for no eligible quota changes"
gfs2: Clean up glock demote logic

Documentation/filesystems/gfs2-glocks.rst | 55 ++---
fs/gfs2/glock.c | 227 ++++++++---------
fs/gfs2/glock.h | 1 -
fs/gfs2/glops.c | 42 +---
fs/gfs2/incore.h | 12 +-
fs/gfs2/lock_dlm.c | 28 ++-
fs/gfs2/ops_fstype.c | 13 +-
fs/gfs2/quota.c | 388 +++++++++++++++---------------
fs/gfs2/super.c | 1 -
fs/gfs2/trace_gfs2.h | 6 +-
fs/gfs2/util.c | 12 +-
11 files changed, 380 insertions(+), 405 deletions(-)