Please don't reply to lustre-devel. Instead, comment in Bugzilla by using the following link: https://bugzilla.lustre.org/show_bug.cgi?id=11510
Comment Tags: Analysis > > I'm not sure I understand this. Didn't ext2fs_extent_split() already write > the > ei_leaf == new_block? Should this instead be writing out the inode? Would it > be enough to return BLOCK_CHANGED in this case to have the caller write out > the > current block? > > With the exception of the above issue, I think it only needs a bit of code > cleanup before it can land into the CFS e2fsprogs patch series. > The block had to be explicitly written because, the extent tree structure has been changed, now we have a tree with depth 2. And block_iterate_extents has been called only once so far (original tree was of depth 1). So when block_iterate_extents returns, the caller updates the inode.i_block, only. In ext2fs_extent_split, the new leaf block is written, which contains the extents. But the ex_leaf fields are updated (It is updated with new blocks in order to resolve multiply-claimed blocks problem) only after ext2fs_extent_split returns in block_iterate_extents. Hence this block has to be written, again. Note: eh & ex fields are changed in ext2fs_extents_split, as they should always point to last level of the tree i.e depth = 0. _______________________________________________ Lustre-devel mailing list [email protected] https://mail.clusterfs.com/mailman/listinfo/lustre-devel
