diff options
Diffstat (limited to 'fs/btrfs/ordered-data.h')
-rw-r--r-- | fs/btrfs/ordered-data.h | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/fs/btrfs/ordered-data.h b/fs/btrfs/ordered-data.h index 58b0e3b0ebad..68844d59ee6f 100644 --- a/fs/btrfs/ordered-data.h +++ b/fs/btrfs/ordered-data.h | |||
@@ -26,18 +26,6 @@ struct btrfs_ordered_inode_tree { | |||
26 | struct rb_node *last; | 26 | struct rb_node *last; |
27 | }; | 27 | }; |
28 | 28 | ||
29 | /* | ||
30 | * these are used to collect checksums done just before bios submission. | ||
31 | * They are attached via a list into the ordered extent, and | ||
32 | * checksum items are inserted into the tree after all the blocks in | ||
33 | * the ordered extent are on disk | ||
34 | */ | ||
35 | struct btrfs_sector_sum { | ||
36 | /* bytenr on disk */ | ||
37 | u64 bytenr; | ||
38 | u32 sum; | ||
39 | }; | ||
40 | |||
41 | struct btrfs_ordered_sum { | 29 | struct btrfs_ordered_sum { |
42 | /* bytenr is the start of this extent on disk */ | 30 | /* bytenr is the start of this extent on disk */ |
43 | u64 bytenr; | 31 | u64 bytenr; |
@@ -45,10 +33,10 @@ struct btrfs_ordered_sum { | |||
45 | /* | 33 | /* |
46 | * this is the length in bytes covered by the sums array below. | 34 | * this is the length in bytes covered by the sums array below. |
47 | */ | 35 | */ |
48 | unsigned long len; | 36 | int len; |
49 | struct list_head list; | 37 | struct list_head list; |
50 | /* last field is a variable length array of btrfs_sector_sums */ | 38 | /* last field is a variable length array of csums */ |
51 | struct btrfs_sector_sum sums[]; | 39 | u32 sums[]; |
52 | }; | 40 | }; |
53 | 41 | ||
54 | /* | 42 | /* |
@@ -149,11 +137,8 @@ struct btrfs_ordered_extent { | |||
149 | static inline int btrfs_ordered_sum_size(struct btrfs_root *root, | 137 | static inline int btrfs_ordered_sum_size(struct btrfs_root *root, |
150 | unsigned long bytes) | 138 | unsigned long bytes) |
151 | { | 139 | { |
152 | unsigned long num_sectors = (bytes + root->sectorsize - 1) / | 140 | int num_sectors = (int)DIV_ROUND_UP(bytes, root->sectorsize); |
153 | root->sectorsize; | 141 | return sizeof(struct btrfs_ordered_sum) + num_sectors * sizeof(u32); |
154 | num_sectors++; | ||
155 | return sizeof(struct btrfs_ordered_sum) + | ||
156 | num_sectors * sizeof(struct btrfs_sector_sum); | ||
157 | } | 142 | } |
158 | 143 | ||
159 | static inline void | 144 | static inline void |
@@ -204,6 +189,8 @@ void btrfs_add_ordered_operation(struct btrfs_trans_handle *trans, | |||
204 | struct btrfs_root *root, | 189 | struct btrfs_root *root, |
205 | struct inode *inode); | 190 | struct inode *inode); |
206 | void btrfs_wait_ordered_extents(struct btrfs_root *root, int delay_iput); | 191 | void btrfs_wait_ordered_extents(struct btrfs_root *root, int delay_iput); |
192 | void btrfs_wait_all_ordered_extents(struct btrfs_fs_info *fs_info, | ||
193 | int delay_iput); | ||
207 | void btrfs_get_logged_extents(struct btrfs_root *log, struct inode *inode); | 194 | void btrfs_get_logged_extents(struct btrfs_root *log, struct inode *inode); |
208 | void btrfs_wait_logged_extents(struct btrfs_root *log, u64 transid); | 195 | void btrfs_wait_logged_extents(struct btrfs_root *log, u64 transid); |
209 | void btrfs_free_logged_extents(struct btrfs_root *log, u64 transid); | 196 | void btrfs_free_logged_extents(struct btrfs_root *log, u64 transid); |