Lines Matching defs:len

44 		u32 len;
47 len = min(region_len * info.block_size, backing_len);
49 sparse_file_add_data(info.sparse_file, ptr, len, region_block);
50 ptr += len;
51 backing_len -= len;
57 static void reserve_indirect_block(struct block_allocation *alloc, int len)
64 if (advance_blocks(alloc, len)) {
65 error("failed to advance %d blocks", len);
70 static void reserve_dindirect_block(struct block_allocation *alloc, int len)
77 while (len > 0) {
78 int ind_block_len = min((int)aux_info.blocks_per_ind, len);
82 len -= ind_block_len;
87 static void reserve_tindirect_block(struct block_allocation *alloc, int len)
94 while (len > 0) {
95 int dind_block_len = min((int)aux_info.blocks_per_dind, len);
99 len -= dind_block_len;
103 static void fill_indirect_block(u32 *ind_block, int len, struct block_allocation *alloc)
106 for (i = 0; i < len; i++) {
111 static void fill_dindirect_block(u32 *dind_block, int len, struct block_allocation *alloc)
116 for (i = 0; len > 0; i++) {
128 int ind_block_len = min((int)aux_info.blocks_per_ind, len);
137 len -= ind_block_len;
141 static void fill_tindirect_block(u32 *tind_block, int len, struct block_allocation *alloc)
146 for (i = 0; len > 0; i++) {
158 int dind_block_len = min((int)aux_info.blocks_per_dind, len);
162 len -= dind_block_len;
171 int len = min(*block_len, EXT4_NDIR_BLOCKS);
174 for (i = 0; i < len; i++) {
178 if (advance_blocks(alloc, len)) {
179 error("failed to advance %d blocks", len);
183 *block_len -= len;
194 int len = min(*block_len, aux_info.blocks_per_ind);
208 fill_indirect_block(ind_block_data, len, alloc);
210 if (advance_blocks(alloc, len)) {
211 error("failed to advance %d blocks", len);
215 *block_len -= len;
226 int len = min(*block_len, aux_info.blocks_per_dind);
240 fill_dindirect_block(dind_block_data, len, alloc);
242 if (advance_blocks(alloc, len)) {
243 error("failed to advance %d blocks", len);
247 *block_len -= len;
258 int len = min(*block_len, aux_info.blocks_per_tind);
272 fill_tindirect_block(tind_block_data, len, alloc);
274 if (advance_blocks(alloc, len)) {
275 error("failed to advance %d blocks", len);
279 *block_len -= len;
283 static void reserve_all_indirect_blocks(struct block_allocation *alloc, u32 len)
285 if (len <= EXT4_NDIR_BLOCKS)
288 len -= EXT4_NDIR_BLOCKS;
291 u32 ind_block_len = min(aux_info.blocks_per_ind, len);
294 len -= ind_block_len;
295 if (len == 0)
298 u32 dind_block_len = min(aux_info.blocks_per_dind, len);
301 len -= dind_block_len;
302 if (len == 0)
305 u32 tind_block_len = min(aux_info.blocks_per_tind, len);
308 len -= tind_block_len;
309 if (len == 0)
312 error("%d blocks remaining", len);
315 static u32 indirect_blocks_needed(u32 len)
319 if (len <= EXT4_NDIR_BLOCKS)
322 len -= EXT4_NDIR_BLOCKS;
325 ind += DIV_ROUND_UP(len, aux_info.blocks_per_ind);
327 if (len <= aux_info.blocks_per_ind)
330 len -= aux_info.blocks_per_ind;
332 ind += DIV_ROUND_UP(len, aux_info.blocks_per_dind);
334 if (len <= aux_info.blocks_per_dind)
337 len -= aux_info.blocks_per_dind;
339 ind += DIV_ROUND_UP(len, aux_info.blocks_per_tind);
341 if (len <= aux_info.blocks_per_tind)
404 /* Allocates enough blocks to hold len bytes and connects them to an inode */
405 void inode_allocate_indirect(struct ext4_inode *inode, unsigned long len)
408 u32 block_len = DIV_ROUND_UP(len, info.block_size);
413 error("failed to allocate extents for %lu bytes", len);
425 inode->i_size_lo = len;
487 /* Allocates enough blocks to hold len bytes, with backing_len bytes in a data
490 u8 *inode_allocate_data_indirect(struct ext4_inode *inode, unsigned long len,
494 u32 block_len = DIV_ROUND_UP(len, info.block_size);
499 error("failed to allocate extents for %lu bytes", len);