Home | History | Annotate | Download | only in ext2fs

Lines Matching refs:extent

169 static void dbg_print_extent(char *desc, struct ext2fs_extent *extent)
173 printf("extent: lblk %llu--%llu, len %u, pblk %llu, flags: ",
174 extent->e_lblk, extent->e_lblk + extent->e_len - 1,
175 extent->e_len, extent->e_pblk);
176 if (extent->e_flags & EXT2_EXTENT_FLAGS_LEAF)
178 if (extent->e_flags & EXT2_EXTENT_FLAGS_UNINIT)
180 if (extent->e_flags & EXT2_EXTENT_FLAGS_SECOND_VISIT)
182 if (!extent->e_flags)
266 struct ext2fs_extent extent;
277 * Find the extent closest to the start of the punch range. We don't
279 * next-lowest extent if 'start' is in a hole, and doesn't set a
280 * current node if there was a real error reading the extent tree.
288 retval = ext2fs_extent_get(handle, EXT2_EXTENT_CURRENT, &extent);
296 dbg_print_extent("main loop", &extent);
297 next = extent.e_lblk + extent.e_len;
302 if (start <= extent.e_lblk) {
307 if (end < extent.e_lblk)
310 /* Start of deleted region before extent;
311 adjust beginning of extent */
312 free_start = extent.e_pblk;
313 lfree_start = extent.e_lblk;
315 free_count = end - extent.e_lblk + 1;
317 free_count = extent.e_len;
318 extent.e_len -= free_count;
319 extent.e_lblk += free_count;
320 extent.e_pblk += free_count;
323 * Is the punch region beyond this extent? This can
325 * advance to the next extent if this is the case.
329 /* End of deleted region after extent;
330 adjust end of extent */
332 newlen = start - extent.e_lblk;
333 free_start = extent.e_pblk + newlen;
334 lfree_start = extent.e_lblk + newlen;
335 free_count = extent.e_len - newlen;
336 extent.e_len = newlen;
341 /* The hard case; we need to split the extent */
342 newex.e_pblk = extent.e_pblk +
343 (end + 1 - extent.e_lblk);
346 newex.e_flags = extent.e_flags;
348 extent.e_len = start - extent.e_lblk;
349 free_start = extent.e_pblk + extent.e_len;
350 lfree_start = extent.e_lblk + extent.e_len;
362 * Now pointing at inserted extent; so go back.
367 retval = ext2fs_extent_goto(handle, extent.e_lblk);
371 if (extent.e_len) {
372 dbg_print_extent("replacing", &extent);
373 retval = ext2fs_extent_replace(handle, 0, &extent);
380 dbg_printf("deleting current extent%s\n", "");
384 * back to the current extent.
406 /* Now delete the extent. */
417 * Jump forward to the next extent. If there are
434 &extent);