lkml.org 
[lkml]   [2004]   [Feb]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch] explicit dcache <-> user-space cache coherency, sys_mark_dir_clean(), O_CLEAN
    On Fri, Feb 20, 2004 at 02:23:52PM +0100, Ingo Molnar wrote:

    > i've also attached dir-cache.c, a simple testcode for the new
    > functionality. It marks the current directory clean and tries to open
    > the "./1" file via O_CLEAN with 1 second delay. Start this in one shell
    > and do VFS-namespace modifying ops in another window (eg. "rm -f 2;
    > touch 2") and see the dir-cache code react to it - the 'clean' bit is
    > lost, and the file open-create does not succeed if the directory is not
    > clean.
    >
    > there's a new dentry flag that is maintained under the directory's i_sem
    > semaphore. (It would be simpler to have the flag on the inode level,
    > that way the invalidation could be done as a simple filter to the
    > dnotify function.)

    IMO putting that in dentry (let alone inode) is fundamentally broken.
    Basically, your flag says "somebody in userland knows the contents
    of directory". So your create-if-clean is inherently racy - if we get

    task A task B task C
    had learnt the contents
    marked clean
    changed the contents
    had learnt the contents
    marked clean
    did create-if-clean, assuming
    its knowledge to be accurate

    then A will succeed just fine.
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:01    [W:4.182 / U:0.376 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site