• Sage Weil's avatar
    ceph: preserve I_COMPLETE across rename · 09adc80c
    Sage Weil authored
    d_move puts the renamed dentry at the end of d_subdirs, screwing with our
    cached dentry directory offsets.  We were just clearing I_COMPLETE to avoid
    any possibility of trouble.  However, assigning the renamed dentry an
    offset at the end of the directory (to match it's new d_subdirs position)
    is sufficient to maintain correct behavior and hold onto I_COMPLETE.
    
    This is especially important for workloads like rsync, which renames files
    into place.  Before, we would lose I_COMPLETE and do MDS lookups for each
    file.  With this patch we only talk to the MDS on create and rename.
    Signed-off-by: default avatarSage Weil <sage@newdream.net>
    09adc80c
inode.c 49.3 KB