39 lines · c
1// SPDX-License-Identifier: GPL-2.0-or-later2/*3 * Copyright (C) 2022-2023 Oracle. All Rights Reserved.4 * Author: Darrick J. Wong <djwong@kernel.org>5 */6#ifndef __XFS_SCRUB_REAP_H__7#define __XFS_SCRUB_REAP_H__8 9struct xagb_bitmap;10struct xfsb_bitmap;11 12int xrep_reap_agblocks(struct xfs_scrub *sc, struct xagb_bitmap *bitmap,13 const struct xfs_owner_info *oinfo, enum xfs_ag_resv_type type);14int xrep_reap_fsblocks(struct xfs_scrub *sc, struct xfsb_bitmap *bitmap,15 const struct xfs_owner_info *oinfo);16int xrep_reap_ifork(struct xfs_scrub *sc, struct xfs_inode *ip, int whichfork);17 18/* Buffer cache scan context. */19struct xrep_bufscan {20 /* Disk address for the buffers we want to scan. */21 xfs_daddr_t daddr;22 23 /* Maximum number of sectors to scan. */24 xfs_daddr_t max_sectors;25 26 /* Each round, increment the search length by this number of sectors. */27 xfs_daddr_t daddr_step;28 29 /* Internal scan state; initialize to zero. */30 xfs_daddr_t __sector_count;31};32 33xfs_daddr_t xrep_bufscan_max_sectors(struct xfs_mount *mp,34 xfs_extlen_t fsblocks);35struct xfs_buf *xrep_bufscan_advance(struct xfs_mount *mp,36 struct xrep_bufscan *scan);37 38#endif /* __XFS_SCRUB_REAP_H__ */39