aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/volumes.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/volumes.h')
-rw-r--r--fs/btrfs/volumes.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/fs/btrfs/volumes.h b/fs/btrfs/volumes.h
index c50e50580b51..1f6f25a5787f 100644
--- a/fs/btrfs/volumes.h
+++ b/fs/btrfs/volumes.h
@@ -26,6 +26,7 @@ struct buffer_head;
26struct btrfs_device { 26struct btrfs_device {
27 struct list_head dev_list; 27 struct list_head dev_list;
28 struct list_head dev_alloc_list; 28 struct list_head dev_alloc_list;
29 struct btrfs_fs_devices *fs_devices;
29 struct btrfs_root *dev_root; 30 struct btrfs_root *dev_root;
30 struct buffer_head *pending_io; 31 struct buffer_head *pending_io;
31 struct bio *pending_bios; 32 struct bio *pending_bios;
@@ -34,6 +35,7 @@ struct btrfs_device {
34 u64 generation; 35 u64 generation;
35 36
36 int barriers; 37 int barriers;
38 int writeable;
37 int in_fs_metadata; 39 int in_fs_metadata;
38 40
39 spinlock_t io_lock; 41 spinlock_t io_lock;
@@ -77,6 +79,8 @@ struct btrfs_fs_devices {
77 u64 latest_trans; 79 u64 latest_trans;
78 u64 num_devices; 80 u64 num_devices;
79 u64 open_devices; 81 u64 open_devices;
82 u64 rw_devices;
83 u64 total_rw_bytes;
80 struct block_device *latest_bdev; 84 struct block_device *latest_bdev;
81 /* all of the devices in the FS */ 85 /* all of the devices in the FS */
82 struct list_head devices; 86 struct list_head devices;
@@ -84,7 +88,12 @@ struct btrfs_fs_devices {
84 /* devices not currently being allocated */ 88 /* devices not currently being allocated */
85 struct list_head alloc_list; 89 struct list_head alloc_list;
86 struct list_head list; 90 struct list_head list;
87 int mounted; 91
92 struct btrfs_fs_devices *seed;
93 int seeding;
94 int sprouted;
95
96 int opened;
88}; 97};
89 98
90struct btrfs_bio_stripe { 99struct btrfs_bio_stripe {
@@ -109,16 +118,14 @@ struct btrfs_multi_bio {
109int btrfs_alloc_dev_extent(struct btrfs_trans_handle *trans, 118int btrfs_alloc_dev_extent(struct btrfs_trans_handle *trans,
110 struct btrfs_device *device, 119 struct btrfs_device *device,
111 u64 chunk_tree, u64 chunk_objectid, 120 u64 chunk_tree, u64 chunk_objectid,
112 u64 chunk_offset, 121 u64 chunk_offset, u64 start, u64 num_bytes);
113 u64 num_bytes, u64 *start);
114int btrfs_map_block(struct btrfs_mapping_tree *map_tree, int rw, 122int btrfs_map_block(struct btrfs_mapping_tree *map_tree, int rw,
115 u64 logical, u64 *length, 123 u64 logical, u64 *length,
116 struct btrfs_multi_bio **multi_ret, int mirror_num); 124 struct btrfs_multi_bio **multi_ret, int mirror_num);
117int btrfs_read_sys_array(struct btrfs_root *root); 125int btrfs_read_sys_array(struct btrfs_root *root);
118int btrfs_read_chunk_tree(struct btrfs_root *root); 126int btrfs_read_chunk_tree(struct btrfs_root *root);
119int btrfs_alloc_chunk(struct btrfs_trans_handle *trans, 127int btrfs_alloc_chunk(struct btrfs_trans_handle *trans,
120 struct btrfs_root *extent_root, u64 *start, 128 struct btrfs_root *extent_root, u64 type);
121 u64 *num_bytes, u64 type);
122void btrfs_mapping_init(struct btrfs_mapping_tree *tree); 129void btrfs_mapping_init(struct btrfs_mapping_tree *tree);
123void btrfs_mapping_tree_free(struct btrfs_mapping_tree *tree); 130void btrfs_mapping_tree_free(struct btrfs_mapping_tree *tree);
124int btrfs_map_bio(struct btrfs_root *root, int rw, struct bio *bio, 131int btrfs_map_bio(struct btrfs_root *root, int rw, struct bio *bio,
@@ -141,10 +148,11 @@ int btrfs_unplug_page(struct btrfs_mapping_tree *map_tree,
141int btrfs_grow_device(struct btrfs_trans_handle *trans, 148int btrfs_grow_device(struct btrfs_trans_handle *trans,
142 struct btrfs_device *device, u64 new_size); 149 struct btrfs_device *device, u64 new_size);
143struct btrfs_device *btrfs_find_device(struct btrfs_root *root, u64 devid, 150struct btrfs_device *btrfs_find_device(struct btrfs_root *root, u64 devid,
144 u8 *uuid); 151 u8 *uuid, u8 *fsid);
145int btrfs_shrink_device(struct btrfs_device *device, u64 new_size); 152int btrfs_shrink_device(struct btrfs_device *device, u64 new_size);
146int btrfs_init_new_device(struct btrfs_root *root, char *path); 153int btrfs_init_new_device(struct btrfs_root *root, char *path);
147int btrfs_balance(struct btrfs_root *dev_root); 154int btrfs_balance(struct btrfs_root *dev_root);
148void btrfs_unlock_volumes(void); 155void btrfs_unlock_volumes(void);
149void btrfs_lock_volumes(void); 156void btrfs_lock_volumes(void);
157int btrfs_chunk_readonly(struct btrfs_root *root, u64 chunk_offset);
150#endif 158#endif