Whamcloud - gitweb
Merge branch 'maint' into next
[tools/e2fsprogs.git] / lib / ext2fs / extent.c
index 5372fad..fbb0a74 100644 (file)
@@ -950,8 +950,7 @@ errcode_t ext2fs_extent_node_split(ext2_extent_handle_t handle)
 
                if (log_flex)
                        group = group & ~((1 << (log_flex)) - 1);
-               goal_blk = (group * handle->fs->super->s_blocks_per_group) +
-                       handle->fs->super->s_first_data_block;
+               goal_blk = ext2fs_group_first_block2(handle->fs, group);
        }
        retval = ext2fs_alloc_block2(handle->fs, goal_blk, block_buf,
                                    &new_node_pblk);
@@ -1379,6 +1378,9 @@ errcode_t ext2fs_extent_set_bmap(ext2_extent_handle_t handle,
                                                               &next_extent);
                                if (retval)
                                        goto done;
+                               retval = ext2fs_extent_fix_parents(handle);
+                               if (retval)
+                                       goto done;
                        } else
                                retval = ext2fs_extent_insert(handle,
                                      EXT2_EXTENT_INSERT_AFTER, &newextent);
@@ -1431,6 +1433,9 @@ errcode_t ext2fs_extent_set_bmap(ext2_extent_handle_t handle,
                retval = ext2fs_extent_replace(handle, 0, &extent);
                if (retval)
                        goto done;
+               retval = ext2fs_extent_fix_parents(handle);
+               if (retval)
+                       goto done;
        } else {
                __u32   orig_length;