Messages in this thread | | | From | Nick Piggin <> | Subject | Re: [PATCH 24/28] AFS: Add a function to excise a rejected write from the pagecache [try #2] | Date | Tue, 18 Dec 2007 18:07:53 +1100 |
| |
On Tuesday 18 December 2007 09:54, David Howells wrote: > Nick Piggin <nickpiggin@yahoo.com.au> wrote: > > This reintroduces the fault vs truncate race window, which must be fixed. > > Hmmm... perhaps.
What do you mean by perhaps?
> I remember that cropped up in NFS, but I'm doing things > a bit differently to NFS. Remind me again how that worked please.
How what worked? NFS is using invalidate inode pages quite frequently so it ran into the race more often.
> > Also, it is adding a fair bit of complexity in an area where we should > > instead be reducing it. I think your filesystem should not be doing > > writeback caching of dirty data in the cases where it is so problematic > > (or at least, disallow mmap and read on the dirty data until it has been > > written back or failed). > > Eh? It's a stateless network filesystem. There's a gap between writing to > a file (perhaps though an mmap) and the pagecache pages being written back > in which someone may change the security on a file and block the writeback. > There's nothing I can do to prevent it, so I have to instead deal with the > consequences should they arise. See the description of patch 25 for > examples. > > So you say I shouldn't do any writeback caching at all?
No, you could do writeback caching but disallow read of dirty data. But yeah, a coherent mmap isn't possible then, I guess.
> > But otherwise I guess if you really want to discard the dirty data after > > a failed writeback attempt, what's wrong with just > > invalidate_inode_pages2? > > Erm... Because it deadlocks?
Why don't you call it after calling end_page_writeback?
| |