Messages in this thread | | | Date | Fri, 14 May 2004 11:48:37 -0600 | From | Andreas Dilger <> | Subject | Re: [Ext2-devel] Re: [RFC/RFT] [PATCH] EXT3: Retry allocation after journal commit |
| |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |