Re: [RFC][PATCH] problem of cont_prepare_write()

From: Andrew Morton
Date: Mon Nov 22 2004 - 16:47:33 EST


OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx> wrote:
>
> Andrew Morton <akpm@xxxxxxxx> writes:
>
> > Perhaps cont_prepare_write() should look to see if the zerofilled page is
> > outside the current i_size and if so, advance i_size to the end of the
> > zerofilled page prior to releasing the page lock.
>
> Yes, my first patch was it.

I don't understand what you mean. Do you mean you tried that approach and
rejected it for some reason?

> Umm... however, if ->i_size is updated before ->commit_write(),
> doesn't it allow access to those pages, before all write() work is
> successful?

That's OK. A thread which is read()ing that page will either

a) decide that the page is outside i_size, and won't read it anyway or

b) decide that the page is inside i_size and will read the page's contents.

Still, I'd be inclined to update i_size after running ->commit_write. It
looks like we can simply replace the call to __block_commit_write() with a
call to generic_commit_write().


But none of this has anything to do with truncate, and the patch which you
sent is playing around with the truncate code and appears to be quite
unrelated. Did you send the correct patch? If so, what is it designed to
do?

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