• Yan, Zheng's avatar
    ceph: cleanup ceph_flush_snaps() · ed9b430c
    Yan, Zheng authored
    This patch devide __ceph_flush_snaps() into two stags. In the first
    stage, __ceph_flush_snaps() assign snapcaps flush TIDs and add them
    to cap flush lists. __ceph_flush_snaps() keeps holding the
    i_ceph_lock in this stagge. So inode's auth cap can not change. In
    the second stage, __ceph_flush_snaps() send flushsnap cap messages.
    i_ceph_lock is unlocked before sending each cap message. If auth cap
    changes in the middle, __ceph_flush_snaps() just stops. This is OK
    because kick_flushing_inode_caps() will re-send flushsnap cap messages
    to inode's new auth MDS.
    Signed-off-by: default avatarYan, Zheng <zyan@redhat.com>
    ed9b430c
snap.c 27.2 KB