18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (C) Qu Wenruo 2017. All rights reserved. 48c2ecf20Sopenharmony_ci */ 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci#ifndef BTRFS_TREE_CHECKER_H 78c2ecf20Sopenharmony_ci#define BTRFS_TREE_CHECKER_H 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#include "ctree.h" 108c2ecf20Sopenharmony_ci#include "extent_io.h" 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci/* 138c2ecf20Sopenharmony_ci * Comprehensive leaf checker. 148c2ecf20Sopenharmony_ci * Will check not only the item pointers, but also every possible member 158c2ecf20Sopenharmony_ci * in item data. 168c2ecf20Sopenharmony_ci */ 178c2ecf20Sopenharmony_ciint btrfs_check_leaf_full(struct extent_buffer *leaf); 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci/* 208c2ecf20Sopenharmony_ci * Less strict leaf checker. 218c2ecf20Sopenharmony_ci * Will only check item pointers, not reading item data. 228c2ecf20Sopenharmony_ci */ 238c2ecf20Sopenharmony_ciint btrfs_check_leaf_relaxed(struct extent_buffer *leaf); 248c2ecf20Sopenharmony_ciint btrfs_check_node(struct extent_buffer *node); 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ciint btrfs_check_chunk_valid(struct extent_buffer *leaf, 278c2ecf20Sopenharmony_ci struct btrfs_chunk *chunk, u64 logical); 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci#endif 30