diff options
author | Darrick J. Wong <djwong@kernel.org> | 2024-02-22 12:43:35 -0800 |
---|---|---|
committer | Darrick J. Wong <djwong@kernel.org> | 2024-02-22 12:43:35 -0800 |
commit | a095686a2383526d7315197e2419d84ee8470217 (patch) | |
tree | 74db5f2d372da134dfdf3f6a46fa337b060eaee3 /fs/xfs/xfs_buf_mem.c | |
parent | 8c1771c45dfa9dddd4569727c48204b66073d2c2 (diff) | |
download | lwn-a095686a2383526d7315197e2419d84ee8470217.tar.gz lwn-a095686a2383526d7315197e2419d84ee8470217.zip |
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.c | 13 |
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); +} |