summaryrefslogtreecommitdiff
path: root/fs/xfs/xfs_buf_mem.c
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2024-02-22 23:43:35 +0300
committerDarrick J. Wong <djwong@kernel.org>2024-02-22 23:43:35 +0300
commita095686a2383526d7315197e2419d84ee8470217 (patch)
tree74db5f2d372da134dfdf3f6a46fa337b060eaee3 /fs/xfs/xfs_buf_mem.c
parent8c1771c45dfa9dddd4569727c48204b66073d2c2 (diff)
downloadlinux-a095686a2383526d7315197e2419d84ee8470217.tar.xz
xfs: support in-memory btrees
Adapt the generic btree cursor code to be able to create a btree whose buffers come from a (presumably in-memory) buftarg with a header block that's specific to in-memory btrees. We'll connect this to other parts of online scrub in the next patches. Note that in-memory btrees always have a block size matching the system memory page size for efficiency reasons. There are also a few things we need to do to finalize a btree update; that's covered in the next patch. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'fs/xfs/xfs_buf_mem.c')
-rw-r--r--fs/xfs/xfs_buf_mem.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/fs/xfs/xfs_buf_mem.c b/fs/xfs/xfs_buf_mem.c
index be71ba1a3d7b..73caa2ea8b18 100644
--- a/fs/xfs/xfs_buf_mem.c
+++ b/fs/xfs/xfs_buf_mem.c
@@ -187,3 +187,16 @@ xmbuf_unmap_page(
bp->b_pages = NULL;
bp->b_page_count = 0;
}
+
+/* Is this a valid daddr within the buftarg? */
+bool
+xmbuf_verify_daddr(
+ struct xfs_buftarg *btp,
+ xfs_daddr_t daddr)
+{
+ struct inode *inode = file_inode(btp->bt_file);
+
+ ASSERT(xfs_buftarg_is_mem(btp));
+
+ return daddr < (inode->i_sb->s_maxbytes >> BBSHIFT);
+}