> It's an unfortunate side effect of the read-ahead, I'd much rather just> get rid of that. It _should_ behave like the non-ra case, when a page is> added it merely has IO started on it. So we want to have that be> something like> > if (!PageUptodate(page) && !PageInFlight(page))> ...> > basically like PageWriteback(), but for read-in.

OK it could be done, possibly at great pain. But why is it important?What's the use case where it matters that splice-in should not blockon the read?

And note, after the pipe is full it will block no matter what, sincethe consumer will have to wait until the page is brought uptodate, andcan only then commence with getting the data out from the pipe.