On Mon, Jan 20, 2014 at 10:22:04PM -0800, Darrick J. Wong wrote: > When modifying/removing an extent during punch, don't forget to update > the extent's parents. > > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> Reviewed-by: Zheng Liu <wenqing.lz@xxxxxxxxxx> - Zheng > --- > lib/ext2fs/punch.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > > diff --git a/lib/ext2fs/punch.c b/lib/ext2fs/punch.c > index 657cb53..a3d020e 100644 > --- a/lib/ext2fs/punch.c > +++ b/lib/ext2fs/punch.c > @@ -353,6 +353,9 @@ static errcode_t ext2fs_punch_extent(ext2_filsys fs, ext2_ino_t ino, > if (extent.e_len) { > dbg_print_extent("replacing", &extent); > retval = ext2fs_extent_replace(handle, 0, &extent); > + if (retval) > + goto errout; > + retval = ext2fs_extent_fix_parents(handle); > } else { > struct ext2fs_extent newex; > blk64_t old_lblk, next_lblk; > @@ -387,6 +390,11 @@ static errcode_t ext2fs_punch_extent(ext2_filsys fs, ext2_ino_t ino, > if (retval) > goto errout; > > + retval = ext2fs_extent_fix_parents(handle); > + if (retval && retval != EXT2_ET_NO_CURRENT_NODE) > + goto errout; > + retval = 0; > + > /* Jump forward to the next extent. */ > ext2fs_extent_goto(handle, next_lblk); > op = EXT2_EXTENT_CURRENT; > > -- > 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 -- 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