lkml.org 
[lkml]   [2007]   [Dec]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH 24/28] AFS: Add a function to excise a rejected write from the pagecache [try #2]
    Date
    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?


    \
     
     \ /
      Last update: 2007-12-18 08:11    [W:4.208 / U:0.464 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site