Re: hidden assumptions in generic_file_write

From: Roman Zippel (zippel@linux-m68k.org)
Date: Mon Feb 17 2003 - 10:39:00 EST


Hi,

On Mon, 17 Feb 2003, Muli Ben-Yehuda wrote:

> Since the data is copied to the page after prepare_write() returns, it
> seems that the assumption is that prepare_write() is synchronous and
> the page was already read into memory in case it was not there.

prepare_write tells the fs which part of the page is overwritten, since
the data is usually managed in buffer sized chunks and if the write is
misaligned, it's needed to read a buffer from disk, so a complete buffer
can be written back. That read is indeed syncronous.

> Also, after commit_write(), the code immediately falls through unlock
> which unlocks the page. Since a page is locked during IO, it seems
> that commit_write() is synchronous and the page was already written
> when it returns.

The write is asynchronous, so the actual IO is started later. commit_write
only marks the written buffers as dirty.

bye, Roman

-
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/



This archive was generated by hypermail 2b29 : Sun Feb 23 2003 - 22:00:18 EST