btrfs: fix race between quota disable and quota assign ioctls
[platform/kernel/linux-rpi.git] / fs / btrfs / ref-verify.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (C) 2014 Facebook.  All rights reserved.
4  */
5
6 #ifndef BTRFS_REF_VERIFY_H
7 #define BTRFS_REF_VERIFY_H
8
9 #ifdef CONFIG_BTRFS_FS_REF_VERIFY
10 int btrfs_build_ref_tree(struct btrfs_fs_info *fs_info);
11 void btrfs_free_ref_cache(struct btrfs_fs_info *fs_info);
12 int btrfs_ref_tree_mod(struct btrfs_fs_info *fs_info,
13                        struct btrfs_ref *generic_ref);
14 void btrfs_free_ref_tree_range(struct btrfs_fs_info *fs_info, u64 start,
15                                u64 len);
16
17 static inline void btrfs_init_ref_verify(struct btrfs_fs_info *fs_info)
18 {
19         spin_lock_init(&fs_info->ref_verify_lock);
20         fs_info->block_tree = RB_ROOT;
21 }
22 #else
23 static inline int btrfs_build_ref_tree(struct btrfs_fs_info *fs_info)
24 {
25         return 0;
26 }
27
28 static inline void btrfs_free_ref_cache(struct btrfs_fs_info *fs_info)
29 {
30 }
31
32 static inline int btrfs_ref_tree_mod(struct btrfs_fs_info *fs_info,
33                        struct btrfs_ref *generic_ref)
34 {
35         return 0;
36 }
37
38 static inline void btrfs_free_ref_tree_range(struct btrfs_fs_info *fs_info,
39                                              u64 start, u64 len)
40 {
41 }
42
43 static inline void btrfs_init_ref_verify(struct btrfs_fs_info *fs_info)
44 {
45 }
46
47 #endif /* CONFIG_BTRFS_FS_REF_VERIFY */
48
49 #endif