linux/fs/xfs/scrub/dabtree.h
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0+
   2/*
   3 * Copyright (C) 2017 Oracle.  All Rights Reserved.
   4 * Author: Darrick J. Wong <darrick.wong@oracle.com>
   5 */
   6#ifndef __XFS_SCRUB_DABTREE_H__
   7#define __XFS_SCRUB_DABTREE_H__
   8
   9/* dir/attr btree */
  10
  11struct xchk_da_btree {
  12        struct xfs_da_args      dargs;
  13        xfs_dahash_t            hashes[XFS_DA_NODE_MAXDEPTH];
  14        int                     maxrecs[XFS_DA_NODE_MAXDEPTH];
  15        struct xfs_da_state     *state;
  16        struct xfs_scrub        *sc;
  17        void                    *private;
  18
  19        /*
  20         * Lowest and highest directory block address in which we expect
  21         * to find dir/attr btree node blocks.  For a directory this
  22         * (presumably) means between LEAF_OFFSET and FREE_OFFSET; for
  23         * attributes there is no limit.
  24         */
  25        xfs_dablk_t             lowest;
  26        xfs_dablk_t             highest;
  27
  28        int                     tree_level;
  29};
  30
  31typedef int (*xchk_da_btree_rec_fn)(struct xchk_da_btree *ds, int level);
  32
  33/* Check for da btree operation errors. */
  34bool xchk_da_process_error(struct xchk_da_btree *ds, int level, int *error);
  35
  36/* Check for da btree corruption. */
  37void xchk_da_set_corrupt(struct xchk_da_btree *ds, int level);
  38
  39int xchk_da_btree_hash(struct xchk_da_btree *ds, int level, __be32 *hashp);
  40int xchk_da_btree(struct xfs_scrub *sc, int whichfork,
  41                xchk_da_btree_rec_fn scrub_fn, void *private);
  42
  43#endif /* __XFS_SCRUB_DABTREE_H__ */
  44