]> git.baikalelectronics.ru Git - kernel.git/commit
xfs: introduce xfs_iunlink_lookup
authorDave Chinner <dchinner@redhat.com>
Thu, 14 Jul 2022 01:43:09 +0000 (11:43 +1000)
committerDave Chinner <david@fromorbit.com>
Thu, 14 Jul 2022 01:43:09 +0000 (11:43 +1000)
commit4aed924c04f1ca9edfec36bca17665b72973376e
treec6272a2c0cfaf01c379536ccfef21f0deb668d7c
parent83cf0e96b50492792b2e841463460c30112c83d2
xfs: introduce xfs_iunlink_lookup

When an inode is on an unlinked list during normal operation, it is
guaranteed to be pinned in memory as it is either referenced by the
current unlink operation or it has a open file descriptor that
references it and has it pinned in memory. Hence to look up an inode
on the unlinked list, we can do a direct inode cache lookup and
always expect the lookup to succeed.

Add a function to do this lookup based on the agino that we use to
link the chain of unlinked inodes together so we can begin the
conversion the unlinked list manipulations to use in-memory inodes
rather than inode cluster buffers and remove the backref cache.

Use this lookup function to replace the on-disk inode buffer walk
when removing inodes from the unlinked list with an in-core inode
unlinked list walk.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
fs/xfs/xfs_inode.c
fs/xfs/xfs_trace.h