diff options
author | Christoph Hellwig <hch@infradead.org> | 2011-04-24 19:06:16 +0000 |
---|---|---|
committer | Alex Elder <aelder@sgi.com> | 2011-04-28 13:18:04 -0500 |
commit | 97d3ac75e5e0ebf7ca38ae74cebd201c09b97ab2 (patch) | |
tree | e08af7a4bbb93c22dfeb1bcb2d3caf83aef717c9 /fs/xfs/xfs_alloc.h | |
parent | e26f0501cf743a4289603501413f97ffcb4612f2 (diff) | |
download | op-kernel-dev-97d3ac75e5e0ebf7ca38ae74cebd201c09b97ab2.zip op-kernel-dev-97d3ac75e5e0ebf7ca38ae74cebd201c09b97ab2.tar.gz |
xfs: exact busy extent tracking
Update the extent tree in case we have to reuse a busy extent, so that it
always is kept uptodate. This is done by replacing the busy list searches
with a new xfs_alloc_busy_reuse helper, which updates the busy extent tree
in case of a reuse. This allows us to allow reusing metadata extents
unconditionally, and thus avoid log forces especially for allocation btree
blocks.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Alex Elder <aelder@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_alloc.h')
-rw-r--r-- | fs/xfs/xfs_alloc.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/xfs/xfs_alloc.h b/fs/xfs/xfs_alloc.h index d0b3bc7..de5e27c 100644 --- a/fs/xfs/xfs_alloc.h +++ b/fs/xfs/xfs_alloc.h @@ -145,6 +145,10 @@ xfs_alloc_busy_clear(struct xfs_mount *mp, struct xfs_busy_extent *busyp); int xfs_alloc_busy_search(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agblock_t bno, xfs_extlen_t len); + +void +xfs_alloc_busy_reuse(struct xfs_mount *mp, xfs_agnumber_t agno, + xfs_agblock_t fbno, xfs_extlen_t flen, bool userdata); #endif /* __KERNEL__ */ /* |