Re: [Ext2-devel] Re: [RFC/RFT] [PATCH] EXT3: Retry allocation after journal commit

From: Andreas Dilger
Date: Fri May 14 2004 - 12:54:55 EST


On May 13, 2004 21:49 -0700, Andrew Morton wrote:
> Andreas's patch is a bit sneaky: it simply sets ->h_sync on the current
> transaction then does journal_stop(). I think your patch can do the same
> thing?

Well, actually my patch just waited on the _previous_ transaction to commit
(which can be done anywhere without retrying the operation) and then set
h_sync on the _current_ transaction so that as soon as the current operations
are completed it will also be committed and the blocks released. One can't
of course arbitrarily call journal_stop() or that breaks the transaction
atomicity.

For 99.9% of cases this should be sufficient and doesn't involve changing
the code everywhere - only in ext3_new_block(). Also, Ted's approach
of retrying the operations "outside" the transaction won't work if there
are nested journal transactions being done - those will hold the transaction
open so doing journal_stop/journal_start doesn't really accomplish anything.

Cheers, Andreas
--
Andreas Dilger
http://sourceforge.net/projects/ext2resize/
http://www-mddsp.enel.ucalgary.ca/People/adilger/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/