On Wed, 26 Jul 2000, Stephen C. Tweedie wrote:
> Hi,
>
> On Wed, Jul 26, 2000 at 03:19:46PM -0400, Alexander Viro wrote:
>
> > Erm? Consider that: huge lseek() + write past the end of file. Woops - got
> > to unmerge the tail (it's an internal block now) and we've got no
> > knowledge of IO going on the page. Again, IO may be asynchronous - no
> > protection from i_sem for us. After that page becomes a regular one,
> > right? Looks like a change of state to me...
>
> Naturally, and that change of state must be made atomically by the
> filesystem.
Yep. Which is the point - there _are_ dragons. I believe that it's doable,
but I realy want to repeat: Daniel, watch out for races at the moments
when page state changes, it needs more accurate approach than usual
pagecache-using fs. It can be done, but it will take some reading (and
yes, Stephen, I know that _you_ know it ;-)