Skip to content
  • David Howells's avatar
    VFS: Impose ordering on accesses of d_inode and d_flags · 4bf46a27
    David Howells authored
    
    
    Impose ordering on accesses of d_inode and d_flags to avoid the need to do
    this:
    
    	if (!dentry->d_inode || d_is_negative(dentry)) {
    
    when this:
    
    	if (d_is_negative(dentry)) {
    
    should suffice.
    
    This check is especially problematic if a dentry can have its type field set
    to something other than DENTRY_MISS_TYPE when d_inode is NULL (as in
    unionmount).
    
    What we really need to do is stick a write barrier between setting d_inode and
    setting d_flags and a read barrier between reading d_flags and reading
    d_inode.
    
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    4bf46a27