Lines Matching refs:extent
104 static void dbg_print_extent(char *desc, struct ext2fs_extent *extent) in dbg_print_extent() argument
109 extent->e_lblk, extent->e_lblk + extent->e_len - 1, in dbg_print_extent()
110 extent->e_len, extent->e_pblk); in dbg_print_extent()
111 if (extent->e_flags & EXT2_EXTENT_FLAGS_LEAF) in dbg_print_extent()
113 if (extent->e_flags & EXT2_EXTENT_FLAGS_UNINIT) in dbg_print_extent()
115 if (extent->e_flags & EXT2_EXTENT_FLAGS_SECOND_VISIT) in dbg_print_extent()
117 if (!extent->e_flags) in dbg_print_extent()
275 int flags, struct ext2fs_extent *extent) in ext2fs_extent_get() argument
493 extent->e_flags = 0; in ext2fs_extent_get()
501 extent->e_pblk = ext2fs_le32_to_cpu(ex->ee_start) + in ext2fs_extent_get()
503 extent->e_lblk = ext2fs_le32_to_cpu(ex->ee_block); in ext2fs_extent_get()
504 extent->e_len = ext2fs_le16_to_cpu(ex->ee_len); in ext2fs_extent_get()
505 extent->e_flags |= EXT2_EXTENT_FLAGS_LEAF; in ext2fs_extent_get()
506 if (extent->e_len > EXT_INIT_MAX_LEN) { in ext2fs_extent_get()
507 extent->e_len -= EXT_INIT_MAX_LEN; in ext2fs_extent_get()
508 extent->e_flags |= EXT2_EXTENT_FLAGS_UNINIT; in ext2fs_extent_get()
511 extent->e_pblk = ext2fs_le32_to_cpu(ix->ei_leaf) + in ext2fs_extent_get()
513 extent->e_lblk = ext2fs_le32_to_cpu(ix->ei_block); in ext2fs_extent_get()
520 extent->e_len = end_blk - extent->e_lblk; in ext2fs_extent_get()
523 extent->e_flags |= EXT2_EXTENT_FLAGS_SECOND_VISIT; in ext2fs_extent_get()
563 struct ext2fs_extent extent;
567 retval = ext2fs_extent_get(handle, EXT2_EXTENT_CURRENT, &extent);
582 save_path->lblk = extent.e_lblk;
609 struct ext2fs_extent extent; in ext2fs_extent_goto2() local
612 retval = ext2fs_extent_get(handle, EXT2_EXTENT_ROOT, &extent); in ext2fs_extent_goto2()
633 dbg_print_extent("root", &extent); in ext2fs_extent_goto2()
638 if ((blk >= extent.e_lblk) && in ext2fs_extent_goto2()
639 (blk < extent.e_lblk + extent.e_len)) in ext2fs_extent_goto2()
641 if (blk < extent.e_lblk) { in ext2fs_extent_goto2()
644 &extent); in ext2fs_extent_goto2()
649 &extent); in ext2fs_extent_goto2()
658 &extent); in ext2fs_extent_goto2()
665 dbg_print_extent("next", &extent); in ext2fs_extent_goto2()
667 if (blk == extent.e_lblk) in ext2fs_extent_goto2()
669 if (blk > extent.e_lblk) in ext2fs_extent_goto2()
673 &extent); in ext2fs_extent_goto2()
678 dbg_print_extent("prev", &extent); in ext2fs_extent_goto2()
683 &extent); in ext2fs_extent_goto2()
688 dbg_print_extent("down", &extent); in ext2fs_extent_goto2()
714 struct ext2fs_extent extent; in ext2fs_extent_fix_parents() local
729 retval = ext2fs_extent_get(handle, EXT2_EXTENT_CURRENT, &extent); in ext2fs_extent_fix_parents()
734 start = extent.e_lblk; in ext2fs_extent_fix_parents()
743 retval = ext2fs_extent_get(handle, EXT2_EXTENT_UP, &extent); in ext2fs_extent_fix_parents()
746 if (extent.e_lblk == start) in ext2fs_extent_fix_parents()
749 extent.e_len += (extent.e_lblk - start); in ext2fs_extent_fix_parents()
750 extent.e_lblk = start; in ext2fs_extent_fix_parents()
751 retval = ext2fs_extent_replace(handle, 0, &extent); in ext2fs_extent_fix_parents()
765 struct ext2fs_extent *extent) in ext2fs_extent_replace() argument
785 dbg_print_extent(0, extent); in ext2fs_extent_replace()
791 ex->ee_block = ext2fs_cpu_to_le32(extent->e_lblk); in ext2fs_extent_replace()
792 ex->ee_start = ext2fs_cpu_to_le32(extent->e_pblk & 0xFFFFFFFF); in ext2fs_extent_replace()
793 ex->ee_start_hi = ext2fs_cpu_to_le16(extent->e_pblk >> 32); in ext2fs_extent_replace()
794 if (extent->e_flags & EXT2_EXTENT_FLAGS_UNINIT) { in ext2fs_extent_replace()
795 if (extent->e_len > EXT_UNINIT_MAX_LEN) in ext2fs_extent_replace()
797 ex->ee_len = ext2fs_cpu_to_le16(extent->e_len + in ext2fs_extent_replace()
800 if (extent->e_len > EXT_INIT_MAX_LEN) in ext2fs_extent_replace()
802 ex->ee_len = ext2fs_cpu_to_le16(extent->e_len); in ext2fs_extent_replace()
807 ix->ei_leaf = ext2fs_cpu_to_le32(extent->e_pblk & 0xFFFFFFFF); in ext2fs_extent_replace()
808 ix->ei_leaf_hi = ext2fs_cpu_to_le16(extent->e_pblk >> 32); in ext2fs_extent_replace()
809 ix->ei_block = ext2fs_cpu_to_le32(extent->e_lblk); in ext2fs_extent_replace()
830 struct ext2fs_extent extent; in ext2fs_extent_node_split() local
849 retval = ext2fs_extent_get(handle, EXT2_EXTENT_CURRENT, &extent); in ext2fs_extent_node_split()
859 orig_lblk = extent.e_lblk; in ext2fs_extent_node_split()
871 retval = ext2fs_extent_get(handle, EXT2_EXTENT_UP, &extent); in ext2fs_extent_node_split()
874 goal_blk = extent.e_pblk; in ext2fs_extent_node_split()
998 retval = ext2fs_extent_get(handle, EXT2_EXTENT_FIRST_SIB, &extent); in ext2fs_extent_node_split()
1002 extent.e_lblk = new_node_start; in ext2fs_extent_node_split()
1003 extent.e_pblk = new_node_pblk; in ext2fs_extent_node_split()
1004 extent.e_len = handle->path[0].end_blk - extent.e_lblk; in ext2fs_extent_node_split()
1005 retval = ext2fs_extent_replace(handle, 0, &extent); in ext2fs_extent_node_split()
1011 retval = ext2fs_extent_get(handle, EXT2_EXTENT_UP, &extent); in ext2fs_extent_node_split()
1013 new_node_length = new_node_start - extent.e_lblk; in ext2fs_extent_node_split()
1014 extent.e_len -= new_node_length; in ext2fs_extent_node_split()
1015 retval = ext2fs_extent_replace(handle, 0, &extent); in ext2fs_extent_node_split()
1020 extent.e_lblk = new_node_start; in ext2fs_extent_node_split()
1021 extent.e_pblk = new_node_pblk; in ext2fs_extent_node_split()
1022 extent.e_len = new_node_length; in ext2fs_extent_node_split()
1023 retval = ext2fs_extent_insert(handle, EXT2_EXTENT_INSERT_AFTER, &extent); in ext2fs_extent_node_split()
1050 struct ext2fs_extent *extent) in ext2fs_extent_insert() argument
1067 dbg_print_extent(0, extent); in ext2fs_extent_insert()
1108 retval = ext2fs_extent_replace(handle, 0, extent); in ext2fs_extent_insert()
1159 struct ext2fs_extent extent, next_extent, prev_extent; in ext2fs_extent_set_bmap() local
1201 &extent))) { in ext2fs_extent_set_bmap()
1204 memset(&extent, 0, sizeof(extent)); in ext2fs_extent_set_bmap()
1209 orig_lblk = extent.e_lblk; in ext2fs_extent_set_bmap()
1234 retval = ext2fs_extent_get(handle, EXT2_EXTENT_CURRENT, &extent); in ext2fs_extent_set_bmap()
1237 if (extent.e_flags & EXT2_EXTENT_FLAGS_UNINIT) in ext2fs_extent_set_bmap()
1272 (extent.e_pblk + (logical - extent.e_lblk) == physical)) { in ext2fs_extent_set_bmap()
1283 if ((logical == extent.e_lblk + extent.e_len) && in ext2fs_extent_set_bmap()
1284 (physical == extent.e_pblk + extent.e_len) && in ext2fs_extent_set_bmap()
1286 ((int) extent.e_len < max_len-1)) { in ext2fs_extent_set_bmap()
1287 extent.e_len++; in ext2fs_extent_set_bmap()
1288 retval = ext2fs_extent_replace(handle, 0, &extent); in ext2fs_extent_set_bmap()
1289 } else if ((logical == extent.e_lblk - 1) && in ext2fs_extent_set_bmap()
1290 (physical == extent.e_pblk - 1) && in ext2fs_extent_set_bmap()
1292 ((int) extent.e_len < max_len - 1)) { in ext2fs_extent_set_bmap()
1293 extent.e_len++; in ext2fs_extent_set_bmap()
1294 extent.e_lblk--; in ext2fs_extent_set_bmap()
1295 extent.e_pblk--; in ext2fs_extent_set_bmap()
1296 retval = ext2fs_extent_replace(handle, 0, &extent); in ext2fs_extent_set_bmap()
1311 } else if (logical < extent.e_lblk) in ext2fs_extent_set_bmap()
1321 } else if ((logical == extent.e_lblk) && (extent.e_len == 1)) { in ext2fs_extent_set_bmap()
1338 } else if (logical == extent.e_lblk + extent.e_len - 1) { in ext2fs_extent_set_bmap()
1370 &extent); in ext2fs_extent_set_bmap()
1374 extent.e_len--; in ext2fs_extent_set_bmap()
1375 retval = ext2fs_extent_replace(handle, 0, &extent); in ext2fs_extent_set_bmap()
1378 } else if (logical == extent.e_lblk) { in ext2fs_extent_set_bmap()
1404 &extent); in ext2fs_extent_set_bmap()
1408 extent.e_pblk++; in ext2fs_extent_set_bmap()
1409 extent.e_lblk++; in ext2fs_extent_set_bmap()
1410 extent.e_len--; in ext2fs_extent_set_bmap()
1411 retval = ext2fs_extent_replace(handle, 0, &extent); in ext2fs_extent_set_bmap()
1425 orig_length = extent.e_len; in ext2fs_extent_set_bmap()
1428 extent.e_len = (logical - extent.e_lblk); in ext2fs_extent_set_bmap()
1429 retval = ext2fs_extent_replace(handle, 0, &extent); in ext2fs_extent_set_bmap()
1441 extent.e_pblk += extent.e_len + 1; in ext2fs_extent_set_bmap()
1442 extent.e_lblk += extent.e_len + 1; in ext2fs_extent_set_bmap()
1443 extent.e_len = orig_length - extent.e_len - 1; in ext2fs_extent_set_bmap()
1445 EXT2_EXTENT_INSERT_AFTER, &extent); in ext2fs_extent_set_bmap()
1475 struct ext2fs_extent extent; in ext2fs_extent_delete() local
1478 &extent); in ext2fs_extent_delete()
1481 dbg_print_extent(0, &extent); in ext2fs_extent_delete()
1507 struct ext2fs_extent extent; in ext2fs_extent_delete() local
1510 &extent); in ext2fs_extent_delete()
1521 extent.e_pblk, -1); in ext2fs_extent_delete()