On Wed, Mar 20, 2013 at 03:53:55PM +0100, Lukas Czerner wrote: > Currently when converting extent to initialized we attempt to transfer > initialized block to the left neighbour if possible when certain criteria > are met. However we do not attempt to do the same for the right > neighbor. > > This commit adds the possibility to transfer initialized block to the > right neighbour if: > > 1. We're not converting the whole extent > 2. Both extents are stored in the same extent tree node > 3. Right neighbor is initialized > 4. Right neighbor is logically abutting the current one > 5. Right neighbor is physically abutting the current one > 6. Right neighbor would not overflow the length limit > > This is basically the same logic as with transferring to the left. This > will gain us some performance benefits since it is faster than inserting > extent and then merging it. > > It would also prevent some situation in delalloc patch when we might run > out of metadata reservation. This is due to the fact that we would > attempt to split the extent first (possibly allocating new metadata > block) even though we did not counted for that because it can (and will) > be merged again. This commit fix that scenario, because we no longer > need to split the extent in such case. > > Signed-off-by: Lukas Czerner <lczerner@xxxxxxxxxx> Thanks, applied to the dev branch for testing - Ted -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html