xfs: add scrub cross-referencing helpers for the refcount btrees
Add a couple of functions to the refcount btrees that will be used to cross-reference metadata against the refcountbt. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Dave Chinner <dchinner@redhat.com>
This commit is contained in:
parent
ed7c52d4bf
commit
49db55eca5
|
@ -1696,3 +1696,22 @@ out_cursor:
|
|||
xfs_trans_brelse(tp, agbp);
|
||||
goto out_trans;
|
||||
}
|
||||
|
||||
/* Is there a record covering a given extent? */
|
||||
int
|
||||
xfs_refcount_has_record(
|
||||
struct xfs_btree_cur *cur,
|
||||
xfs_agblock_t bno,
|
||||
xfs_extlen_t len,
|
||||
bool *exists)
|
||||
{
|
||||
union xfs_btree_irec low;
|
||||
union xfs_btree_irec high;
|
||||
|
||||
memset(&low, 0, sizeof(low));
|
||||
low.rc.rc_startblock = bno;
|
||||
memset(&high, 0xFF, sizeof(high));
|
||||
high.rc.rc_startblock = bno + len - 1;
|
||||
|
||||
return xfs_btree_has_record(cur, &low, &high, exists);
|
||||
}
|
||||
|
|
|
@ -83,4 +83,7 @@ static inline xfs_fileoff_t xfs_refcount_max_unmap(int log_res)
|
|||
return (log_res * 3 / 4) / XFS_REFCOUNT_ITEM_OVERHEAD;
|
||||
}
|
||||
|
||||
extern int xfs_refcount_has_record(struct xfs_btree_cur *cur,
|
||||
xfs_agblock_t bno, xfs_extlen_t len, bool *exists);
|
||||
|
||||
#endif /* __XFS_REFCOUNT_H__ */
|
||||
|
|
Loading…
Reference in a new issue