Re: [patch] stop inotify from sending random DELETE_SELF event under load

From: Linus Torvalds (torvalds_at_osdl.org)
Date: 09/20/05

  • Next message: John McCutchan: "Re: [patch] stop inotify from sending random DELETE_SELF event under load"
    Date:	Mon, 19 Sep 2005 18:37:43 -0700 (PDT)
    To: John McCutchan <ttb@tentacle.dhs.org>
    
    

    On Mon, 19 Sep 2005, John McCutchan wrote:
    >
    > Below is a patch that fixes the random DELETE_SELF events when the
    > system is under load. The problem is that the DELETE_SELF event is sent
    > from dentry_iput, which is called in two code paths,
    >
    > 1) When a dentry is being deleted
    > 2) When the dcache is being pruned.

    No no.

    The problem is that you put the "fsnotify_inoderemove(inode);" in the
    wrong place, and I and Al never noticed.

    iput() doesn't have anything to do with delete at all, and adding a flag
    to it would be wrong. The inode may stay around _after_ the unlink() for
    as long as it has users (or much longer, if you have hardlinks ;).

    You should probably move the "fsnotify_inoderemove(inode);" call into
    generic_delete_inode() instead, just after "security_inode_delete()". No
    new flags, just a new place.

    (Oh, I think you need to add it to "hugetlbfs_delete_inode()" too).

    There's still a potential problem there: some network filesystems seem to
    use "generic_delete_inode()" as their "drop_inode" thing. Which may mean
    that you get spurious delete messages when the reference is dropped. I
    don't see how to avoid that, though - we fundamentally don't _know_ when
    the inode actually gets deleted.

    Al, do you have any comments? Anything stupid I missed?

                    Linus
    -
    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/


  • Next message: John McCutchan: "Re: [patch] stop inotify from sending random DELETE_SELF event under load"

    Relevant Pages

    • Re: [PATCH] Use MPOL_INTERLEAVE for tmpfs files
      ... NULL sbinfo as an indicator that an inode is from tmpfs rather than ... The NULL sbinfo scheme worked perfectly for me, ... the only thing preventing this is that I stuck the flag into ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • [PATCH for testing] cow behaviour for hard links
      ... Flag can be changed and queried per fcntl. ... will fail, when a) cowlink flags is set, b) inode has more than one ... int vfs_rename(struct inode *old_dir, struct dentry *old_dentry, ...
      (Linux-Kernel)
    • Re: [RFC] [PATCH 3/3] Recursive mtime for ext3
      ... set the flag for each directory), during the scan, it sets the flag on ... When it wakes up to recheck the subtree it just compares ... the rtime against the stored time - if rtime is greater, ... file inode, but only directory inode, right? ...
      (Linux-Kernel)
    • Re: [PATCH 1/5] cpuset memory spread basic implementation
      ... persistent flag attached to the physical inode. ... the kernel will always know what the current allocation strategy is for ... jobs need to serialize their access to the object, as the kernel can ...
      (Linux-Kernel)
    • Re: [PATCH 2.6.13-rc6-rt9] PI aware dynamic priority adjustment
      ... means that the MUTEX_IRQS_OFF flag and all related changes needs to be ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)