Pavel has looked into this before and got stuck on the allocator workqueue offloads: [PATCH v13 0/4] xfs: Remove wrappers for some semaphores On Wed, Jan 13, 2021 at 01:17:03PM +0200, Nikolay Borisov wrote: > This series removes mrlock_t and directly replaces i_lock and i_mmaplock with > rw_semaphore in xfs_inode. My end game with this is to eventually lift i_mmaplock > in VFS and use it from there. The necessity for the latter came up since BTRFS > is also about to get its own private version of i_mmaplock for the same use case. > This will mean that all 3 major filesystems on linux (ext4/xfs/btrfs) wil share > the same lock. Christoph naturally suggested for the lock to be lifted to VFS. > > Before proceeding with this work I'd like to get the opinion of XFS developers > whether doing that is acceptable for them. I've heard that Dave wants to eventually > convert the mmapsem to a range lock for XFS and implement a callback mechanism > for VFS to call into every filesystem... > > I've only compile tested this and also the way the rwsem is checked for write > is admittedly a bit hackish but it can easily be changed to utilize lockdep. > I'm aware of https://lore.kernel.org/linux-xfs/20201102194135.174806-1-preichl@xxxxxxxxxx/ > but frankly that series went too far up to rev 10 which is a bit mind boggling... > > Nikolay Borisov (3): > xfs: Add is_rwsem_write_locked function > xfs: Convert i_lock/i_mmaplock to rw_semaphore > xfs: Remove mrlock > > fs/xfs/mrlock.h | 78 ---------------------------------------- > fs/xfs/xfs_inode.c | 48 ++++++++++++++----------- > fs/xfs/xfs_inode.h | 6 ++-- > fs/xfs/xfs_linux.h | 1 - > fs/xfs/xfs_qm_syscalls.c | 2 +- > fs/xfs/xfs_super.c | 7 ++-- > 6 files changed, 34 insertions(+), 108 deletions(-) > delete mode 100644 fs/xfs/mrlock.h > > -- > 2.25.1 > ---end quoted text---