Home | History | Annotate | Download | only in e2fsck

Lines Matching refs:extent

2  * extents.c --- rebuild extent tree
27 /* Schedule an inode to have its extent tree rebuilt during pass 1E. */
42 _("extent rebuild inode map"),
75 struct ext2fs_extent extent;
82 retval = ext2fs_extent_get(handle, EXT2_EXTENT_ROOT, &extent);
87 if (extent.e_flags & EXT2_EXTENT_FLAGS_SECOND_VISIT)
91 if (!(extent.e_flags & EXT2_EXTENT_FLAGS_LEAF)) {
94 extent.e_pblk, list->blocks_freed + 1);
97 ext2fs_block_alloc_stats2(fs, extent.e_pblk, -1);
102 /* Can we attach it to the previous extent? */
106 blk64_t end = last->e_len + extent.e_len;
108 if (last->e_pblk + last->e_len == extent.e_pblk &&
109 last->e_lblk + last->e_len == extent.e_lblk &&
111 (extent.e_flags & EXT2_EXTENT_FLAGS_UNINIT) &&
113 last->e_len += extent.e_len;
132 /* Add a new extent */
133 memcpy(list->extents + list->count, &extent, sizeof(extent));
136 extent.e_pblk, extent.e_lblk, extent.e_len);
140 retval = ext2fs_extent_get(handle, EXT2_EXTENT_NEXT, &extent);
168 /* Can we attach it to the previous extent? */
194 /* Add a new extent */
215 struct ext2fs_extent *ex, extent;
248 /* Reset extent tree */
268 memcpy(&extent, ex, sizeof(struct ext2fs_extent));
269 extent.e_flags &= EXT2_EXTENT_FLAGS_UNINIT;
270 if (extent.e_flags & EXT2_EXTENT_FLAGS_UNINIT) {
271 if (extent.e_len > EXT_UNINIT_MAX_LEN) {
272 extent.e_len = EXT_UNINIT_MAX_LEN;
280 if (extent.e_len > EXT_INIT_MAX_LEN) {
281 extent.e_len = EXT_INIT_MAX_LEN;
292 extent.e_pblk, extent.e_lblk, extent.e_len);
295 &extent);
411 /* Scan a file to see if we should rebuild its extent tree */
418 struct ext2fs_extent extent;
423 /* block map file and we want extent conversion */
435 /* Otherwise, go scan the extent tree... */
444 /* Check maximum extent depth */
452 /* Can we collect extent tree level stats? */
461 retval = ext2fs_extent_get(ehandle, EXT2_EXTENT_ROOT, &extent);
471 * If this is the first extent in an extent block that we
475 !(extent.e_flags & EXT2_EXTENT_FLAGS_SECOND_VISIT) &&
483 * Implementation wart: Splitting extent blocks when
486 * pretend that a non-root extent block can hold one
488 * repeatedly rebuild the extent tree.
496 if (extent.e_flags & EXT2_EXTENT_FLAGS_LEAF) {
499 &extent);
504 retval = ext2fs_extent_get(ehandle, EXT2_EXTENT_NEXT, &extent);
511 /* Having scanned a file's extent tree, decide if we should rebuild it */
529 * extent tree to be rebuilt.