• S
    ceph: fix flush_dirty_caps race with caps migration · e9964c10
    Sage Weil 提交于
    The flush_dirty_caps() used to loop over the first entry of the cap_dirty
    dirty list on the assumption that after calling ceph_check_caps() it would
    be removed from the list.  This isn't true for caps that are being
    migrated between MDSs, where we've received the EXPORT but not the IMPORT.
    
    Instead, do a safe list iteration, and pin the next inode on the list via
    the CEPH_I_NOFLUSH flag.
    Signed-off-by: NSage Weil <sage@newdream.net>
    e9964c10
caps.c 78.9 KB