xfs: teach buftargs to maintain their own buffer hashtable
authorDarrick J. Wong <djwong@kernel.org>
Thu, 22 Feb 2024 20:42:58 +0000 (12:42 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Thu, 22 Feb 2024 20:42:58 +0000 (12:42 -0800)
commite7b58f7c1be20550d4f51cec6307b811e7555f52
tree140c5b97cdd41e67b751905cba36f4cf5eb3422f
parent1c51ac0998ed9baaca3ac75c0083b4c3b4d993ef
xfs: teach buftargs to maintain their own buffer hashtable

Currently, cached buffers are indexed by per-AG hashtables.  This works
great for the data device, but won't work for in-memory btrees.  To
handle that use case, buftargs will need to be able to index buffers
independently of other data structures.

We accomplish this by hoisting the rhashtable and its lock into a
separate xfs_buf_cache structure, make the buftarg point to the
_buf_cache structure, and rework various functions to use it.  This
will enable the in-memory buftarg to come up with its own _buf_cache.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/libxfs/xfs_ag.c
fs/xfs/libxfs/xfs_ag.h
fs/xfs/xfs_buf.c
fs/xfs/xfs_buf.h
fs/xfs/xfs_mount.h