On Tue, 25 Oct 2011 04:18:34 -0400, Ted Ts'o <tytso@xxxxxxx> wrote: > On Fri, Oct 21, 2011 at 01:08:56AM +0400, Dmitry Monakhov wrote: > > ext4_ext_insert_extent() may fail due to number of reasons (ENOSPC) > > so let's update eof flag only after extent was successfully inserted. > > > > Signed-off-by: Dmitry Monakhov <dmonakhov@xxxxxxxxxx> > > The problem with this patch is that if the check_eofblocks_fl() fails, > the patch jumps to out: and doesn't undo the block allocation and > extent tree manipulation. check_eofblocks_fl may fail only due to ext4_journal_get_write_access or ext4_mark_iloc_dirty, this means that something serious happen, so it is very unlikely we can undo block allocation. > > I suspect a better way of solving this problem is to keep the existing > order, but to save the state of eofblocks flag, and if > ext4_ext_insert_extent() fails, to restore the state of the eofblocks > flag before jumping to the exit routine. Yes. This is definitely looks better, will redo. > > - 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 -- 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