Loading fs/xfs/libxfs/xfs_refcount.c +19 −0 Original line number Diff line number Diff line Loading @@ -1696,3 +1696,22 @@ xfs_refcount_recover_cow_leftovers( 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); } fs/xfs/libxfs/xfs_refcount.h +3 −0 Original line number Diff line number Diff line Loading @@ -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
fs/xfs/libxfs/xfs_refcount.c +19 −0 Original line number Diff line number Diff line Loading @@ -1696,3 +1696,22 @@ xfs_refcount_recover_cow_leftovers( 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); }
fs/xfs/libxfs/xfs_refcount.h +3 −0 Original line number Diff line number Diff line Loading @@ -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__ */