mbox series

[0/3] xfs: rework quotaoff to avoid log deadlock

Message ID 20201001150310.141467-1-bfoster@redhat.com (mailing list archive)
Headers show
Series xfs: rework quotaoff to avoid log deadlock | expand

Message

Brian Foster Oct. 1, 2020, 3:03 p.m. UTC
Hi all,

Here's a proper v1 of the quotaoff logging rework. Changes from the RFC
are fairly straightforward and listed below. The one outstanding bit of
feedback from the RFC is the lock / memory ordering question around the
quota flags update. My understanding is that the percpu rwsem provides
the required consistency through a combination of explicit memory
barriers and RCU, so I opted to drop the unnecessary wrapper functions
to make the locking more clear (along with comment updates) and also
eliminate freeze/unfreeze naming confusion.

Thoughts, reviews, flames appreciated.

Brian

v1:
- Replace patch 2 with a proper internal quiesce mechanism.
- Remove unnecessary freeze/unfreeze helpers.
- Relocate quotaoff end transaction to commit inside quiesce window. 
- Clean up comments and document new algorithm.
rfc: https://lore.kernel.org/linux-xfs/20200929141228.108688-1-bfoster@redhat.com/

Brian Foster (3):
  xfs: skip dquot reservations if quota is inactive
  xfs: transaction subsystem quiesce mechanism
  xfs: rework quotaoff logging to avoid log deadlock on active fs

 fs/xfs/xfs_aops.c        |   2 +
 fs/xfs/xfs_mount.h       |   3 +
 fs/xfs/xfs_qm_syscalls.c | 133 +++++++++++++++++++--------------------
 fs/xfs/xfs_super.c       |   8 +++
 fs/xfs/xfs_trans.c       |   4 +-
 fs/xfs/xfs_trans.h       |  20 ++++++
 fs/xfs/xfs_trans_dquot.c |  22 +++----
 7 files changed, 111 insertions(+), 81 deletions(-)