Re: Read in ext3

From: Mike Fedyk
Date: Thu Aug 21 2003 - 19:45:18 EST


On Fri, Aug 22, 2003 at 12:09:26AM -0000, vijayan prabhakaran wrote:
>
> Hi,
>
> I have a doubt on how ext3 handles read in this specific case.
>
> Assume that a page is written to the journal but not yet updated
> to its actual location and before updating the actual copy the
> page
> gets invalidated. Now if a read comes to the same
> data, which block will be read: the journal copy or the actual
> copy ?
>
> First of all, will this situation ever occur ? The page will be
> marked dirty until it is written to its actual location so it
> may
> never get invalidated until it is written to the actual
> location!

The page will be in memory until the transaction has finished. The
transaction won't finish until it has been moved from the journal to its
final location on disk.

Once that has happened the page can be freed. Now, if the page is
invalidated in the middle of the transaction, all future accesses will come
from memory until that page is flushed, or cleaned.

IIUC, ext3 never reads from the journal (unless you're doing a recovery).
The journal just shows on disk what is already in memory so it can be
recovered after an abnormal shutdown.
-
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/