diff options
Diffstat (limited to 'fs/btrfs/ctree.h')
-rw-r--r-- | fs/btrfs/ctree.h | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index 746a9acd2189..6ade48b227e9 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h | |||
@@ -114,6 +114,10 @@ struct btrfs_ordered_sum; | |||
114 | */ | 114 | */ |
115 | #define BTRFS_DEV_ITEMS_OBJECTID 1ULL | 115 | #define BTRFS_DEV_ITEMS_OBJECTID 1ULL |
116 | 116 | ||
117 | #define BTRFS_BTREE_INODE_OBJECTID 1 | ||
118 | |||
119 | #define BTRFS_EMPTY_SUBVOL_DIR_OBJECTID 2 | ||
120 | |||
117 | /* | 121 | /* |
118 | * we can actually store much bigger names, but lets not confuse the rest | 122 | * we can actually store much bigger names, but lets not confuse the rest |
119 | * of linux | 123 | * of linux |
@@ -792,6 +796,8 @@ struct btrfs_fs_info { | |||
792 | 796 | ||
793 | /* the log root tree is a directory of all the other log roots */ | 797 | /* the log root tree is a directory of all the other log roots */ |
794 | struct btrfs_root *log_root_tree; | 798 | struct btrfs_root *log_root_tree; |
799 | |||
800 | spinlock_t fs_roots_radix_lock; | ||
795 | struct radix_tree_root fs_roots_radix; | 801 | struct radix_tree_root fs_roots_radix; |
796 | 802 | ||
797 | /* block group cache stuff */ | 803 | /* block group cache stuff */ |
@@ -1011,6 +1017,8 @@ struct btrfs_root { | |||
1011 | u64 highest_objectid; | 1017 | u64 highest_objectid; |
1012 | int ref_cows; | 1018 | int ref_cows; |
1013 | int track_dirty; | 1019 | int track_dirty; |
1020 | int in_radix; | ||
1021 | |||
1014 | u64 defrag_trans_start; | 1022 | u64 defrag_trans_start; |
1015 | struct btrfs_key defrag_progress; | 1023 | struct btrfs_key defrag_progress; |
1016 | struct btrfs_key defrag_max; | 1024 | struct btrfs_key defrag_max; |
@@ -2111,12 +2119,15 @@ int btrfs_drop_subtree(struct btrfs_trans_handle *trans, | |||
2111 | struct extent_buffer *parent); | 2119 | struct extent_buffer *parent); |
2112 | /* root-item.c */ | 2120 | /* root-item.c */ |
2113 | int btrfs_find_root_ref(struct btrfs_root *tree_root, | 2121 | int btrfs_find_root_ref(struct btrfs_root *tree_root, |
2114 | struct btrfs_path *path, | 2122 | struct btrfs_path *path, |
2115 | u64 root_id, u64 ref_id); | 2123 | u64 root_id, u64 ref_id); |
2116 | int btrfs_add_root_ref(struct btrfs_trans_handle *trans, | 2124 | int btrfs_add_root_ref(struct btrfs_trans_handle *trans, |
2117 | struct btrfs_root *tree_root, | 2125 | struct btrfs_root *tree_root, |
2118 | u64 root_id, u8 type, u64 ref_id, | 2126 | u64 root_id, u64 ref_id, u64 dirid, u64 sequence, |
2119 | u64 dirid, u64 sequence, | 2127 | const char *name, int name_len); |
2128 | int btrfs_del_root_ref(struct btrfs_trans_handle *trans, | ||
2129 | struct btrfs_root *tree_root, | ||
2130 | u64 root_id, u64 ref_id, u64 dirid, u64 *sequence, | ||
2120 | const char *name, int name_len); | 2131 | const char *name, int name_len); |
2121 | int btrfs_del_root(struct btrfs_trans_handle *trans, struct btrfs_root *root, | 2132 | int btrfs_del_root(struct btrfs_trans_handle *trans, struct btrfs_root *root, |
2122 | struct btrfs_key *key); | 2133 | struct btrfs_key *key); |
@@ -2149,6 +2160,10 @@ btrfs_lookup_dir_index_item(struct btrfs_trans_handle *trans, | |||
2149 | struct btrfs_path *path, u64 dir, | 2160 | struct btrfs_path *path, u64 dir, |
2150 | u64 objectid, const char *name, int name_len, | 2161 | u64 objectid, const char *name, int name_len, |
2151 | int mod); | 2162 | int mod); |
2163 | struct btrfs_dir_item * | ||
2164 | btrfs_search_dir_index_item(struct btrfs_root *root, | ||
2165 | struct btrfs_path *path, u64 dirid, | ||
2166 | const char *name, int name_len); | ||
2152 | struct btrfs_dir_item *btrfs_match_dir_item_name(struct btrfs_root *root, | 2167 | struct btrfs_dir_item *btrfs_match_dir_item_name(struct btrfs_root *root, |
2153 | struct btrfs_path *path, | 2168 | struct btrfs_path *path, |
2154 | const char *name, int name_len); | 2169 | const char *name, int name_len); |
@@ -2171,6 +2186,7 @@ int btrfs_insert_orphan_item(struct btrfs_trans_handle *trans, | |||
2171 | struct btrfs_root *root, u64 offset); | 2186 | struct btrfs_root *root, u64 offset); |
2172 | int btrfs_del_orphan_item(struct btrfs_trans_handle *trans, | 2187 | int btrfs_del_orphan_item(struct btrfs_trans_handle *trans, |
2173 | struct btrfs_root *root, u64 offset); | 2188 | struct btrfs_root *root, u64 offset); |
2189 | int btrfs_find_orphan_item(struct btrfs_root *root, u64 offset); | ||
2174 | 2190 | ||
2175 | /* inode-map.c */ | 2191 | /* inode-map.c */ |
2176 | int btrfs_find_free_objectid(struct btrfs_trans_handle *trans, | 2192 | int btrfs_find_free_objectid(struct btrfs_trans_handle *trans, |
@@ -2243,6 +2259,10 @@ int btrfs_unlink_inode(struct btrfs_trans_handle *trans, | |||
2243 | int btrfs_add_link(struct btrfs_trans_handle *trans, | 2259 | int btrfs_add_link(struct btrfs_trans_handle *trans, |
2244 | struct inode *parent_inode, struct inode *inode, | 2260 | struct inode *parent_inode, struct inode *inode, |
2245 | const char *name, int name_len, int add_backref, u64 index); | 2261 | const char *name, int name_len, int add_backref, u64 index); |
2262 | int btrfs_unlink_subvol(struct btrfs_trans_handle *trans, | ||
2263 | struct btrfs_root *root, | ||
2264 | struct inode *dir, u64 objectid, | ||
2265 | const char *name, int name_len); | ||
2246 | int btrfs_truncate_inode_items(struct btrfs_trans_handle *trans, | 2266 | int btrfs_truncate_inode_items(struct btrfs_trans_handle *trans, |
2247 | struct btrfs_root *root, | 2267 | struct btrfs_root *root, |
2248 | struct inode *inode, u64 new_size, | 2268 | struct inode *inode, u64 new_size, |