Skip to content
  • Miklos Szeredi's avatar
    fuse: use d_materialise_unique() · 5835f339
    Miklos Szeredi authored
    
    
    Use d_materialise_unique() instead of d_splice_alias().  This allows dentry
    subtrees to be moved to a new place if there moved, even if something is
    referencing a dentry in the subtree (open fd, cwd, etc..).
    
    This will also allow us to drop a subtree if it is found to be replaced by
    something else.  In this case the disconnected subtree can later be
    reconnected to its new location.
    
    d_materialise_unique() ensures that a directory entry only ever has one
    alias.  We keep fc->inst_mutex around the calls for d_materialise_unique()
    on directories to prevent a race with mkdir "stealing" the inode.
    
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    5835f339