• Y
    ceph: clear directory's completeness when creating file · 0a8a70f9
    Yan, Zheng 提交于
    When creating a file, ceph_set_dentry_offset() puts the new dentry
    at the end of directory's d_subdirs, then set the dentry's offset
    based on directory's max offset. The offset does not reflect the
    real postion of the dentry in directory. Later readdir reply from
    MDS may change the dentry's position/offset. This inconsistency
    can cause missing/duplicate entries in readdir result if readdir
    is partly satisfied by dcache_readdir().
    
    The fix is clear directory's completeness after creating/renaming
    file. It prevents later readdir from using dcache_readdir().
    
    Fixes: http://tracker.ceph.com/issues/8025Signed-off-by: NYan, Zheng <zheng.z.yan@intel.com>
    Reviewed-by: NSage Weil <sage@inktank.com>
    0a8a70f9
dir.c 35.8 KB