Loading fs/ceph/caps.c +4 −9 Original line number Original line Diff line number Diff line Loading @@ -1605,10 +1605,8 @@ void ceph_flush_snaps(struct ceph_inode_info *ci, } } // make sure flushsnap messages are sent in proper order. // make sure flushsnap messages are sent in proper order. if (ci->i_ceph_flags & CEPH_I_KICK_FLUSH) { if (ci->i_ceph_flags & CEPH_I_KICK_FLUSH) __kick_flushing_caps(mdsc, session, ci, 0); __kick_flushing_caps(mdsc, session, ci, 0); ci->i_ceph_flags &= ~CEPH_I_KICK_FLUSH; } __ceph_flush_snaps(ci, session); __ceph_flush_snaps(ci, session); out: out: Loading Loading @@ -2050,10 +2048,8 @@ void ceph_check_caps(struct ceph_inode_info *ci, int flags, if (cap == ci->i_auth_cap && if (cap == ci->i_auth_cap && (ci->i_ceph_flags & (ci->i_ceph_flags & (CEPH_I_KICK_FLUSH | CEPH_I_FLUSH_SNAPS))) { (CEPH_I_KICK_FLUSH | CEPH_I_FLUSH_SNAPS))) { if (ci->i_ceph_flags & CEPH_I_KICK_FLUSH) { if (ci->i_ceph_flags & CEPH_I_KICK_FLUSH) __kick_flushing_caps(mdsc, session, ci, 0); __kick_flushing_caps(mdsc, session, ci, 0); ci->i_ceph_flags &= ~CEPH_I_KICK_FLUSH; } if (ci->i_ceph_flags & CEPH_I_FLUSH_SNAPS) if (ci->i_ceph_flags & CEPH_I_FLUSH_SNAPS) __ceph_flush_snaps(ci, session); __ceph_flush_snaps(ci, session); Loading Loading @@ -2323,6 +2319,8 @@ static void __kick_flushing_caps(struct ceph_mds_client *mdsc, int ret; int ret; u64 first_tid = 0; u64 first_tid = 0; ci->i_ceph_flags &= ~CEPH_I_KICK_FLUSH; list_for_each_entry(cf, &ci->i_cap_flush_list, i_list) { list_for_each_entry(cf, &ci->i_cap_flush_list, i_list) { if (cf->tid < first_tid) if (cf->tid < first_tid) continue; continue; Loading Loading @@ -2412,7 +2410,6 @@ void ceph_early_kick_flushing_caps(struct ceph_mds_client *mdsc, */ */ if ((cap->issued & ci->i_flushing_caps) != if ((cap->issued & ci->i_flushing_caps) != ci->i_flushing_caps) { ci->i_flushing_caps) { ci->i_ceph_flags &= ~CEPH_I_KICK_FLUSH; /* encode_caps_cb() also will reset these sequence /* encode_caps_cb() also will reset these sequence * numbers. make sure sequence numbers in cap flush * numbers. make sure sequence numbers in cap flush * message match later reconnect message */ * message match later reconnect message */ Loading Loading @@ -2452,7 +2449,6 @@ void ceph_kick_flushing_caps(struct ceph_mds_client *mdsc, continue; continue; } } if (ci->i_ceph_flags & CEPH_I_KICK_FLUSH) { if (ci->i_ceph_flags & CEPH_I_KICK_FLUSH) { ci->i_ceph_flags &= ~CEPH_I_KICK_FLUSH; __kick_flushing_caps(mdsc, session, ci, __kick_flushing_caps(mdsc, session, ci, oldest_flush_tid); oldest_flush_tid); } } Loading Loading @@ -2480,7 +2476,6 @@ static void kick_flushing_inode_caps(struct ceph_mds_client *mdsc, oldest_flush_tid = __get_oldest_flush_tid(mdsc); oldest_flush_tid = __get_oldest_flush_tid(mdsc); spin_unlock(&mdsc->cap_dirty_lock); spin_unlock(&mdsc->cap_dirty_lock); ci->i_ceph_flags &= ~CEPH_I_KICK_FLUSH; __kick_flushing_caps(mdsc, session, ci, oldest_flush_tid); __kick_flushing_caps(mdsc, session, ci, oldest_flush_tid); spin_unlock(&ci->i_ceph_lock); spin_unlock(&ci->i_ceph_lock); } else { } else { Loading Loading
fs/ceph/caps.c +4 −9 Original line number Original line Diff line number Diff line Loading @@ -1605,10 +1605,8 @@ void ceph_flush_snaps(struct ceph_inode_info *ci, } } // make sure flushsnap messages are sent in proper order. // make sure flushsnap messages are sent in proper order. if (ci->i_ceph_flags & CEPH_I_KICK_FLUSH) { if (ci->i_ceph_flags & CEPH_I_KICK_FLUSH) __kick_flushing_caps(mdsc, session, ci, 0); __kick_flushing_caps(mdsc, session, ci, 0); ci->i_ceph_flags &= ~CEPH_I_KICK_FLUSH; } __ceph_flush_snaps(ci, session); __ceph_flush_snaps(ci, session); out: out: Loading Loading @@ -2050,10 +2048,8 @@ void ceph_check_caps(struct ceph_inode_info *ci, int flags, if (cap == ci->i_auth_cap && if (cap == ci->i_auth_cap && (ci->i_ceph_flags & (ci->i_ceph_flags & (CEPH_I_KICK_FLUSH | CEPH_I_FLUSH_SNAPS))) { (CEPH_I_KICK_FLUSH | CEPH_I_FLUSH_SNAPS))) { if (ci->i_ceph_flags & CEPH_I_KICK_FLUSH) { if (ci->i_ceph_flags & CEPH_I_KICK_FLUSH) __kick_flushing_caps(mdsc, session, ci, 0); __kick_flushing_caps(mdsc, session, ci, 0); ci->i_ceph_flags &= ~CEPH_I_KICK_FLUSH; } if (ci->i_ceph_flags & CEPH_I_FLUSH_SNAPS) if (ci->i_ceph_flags & CEPH_I_FLUSH_SNAPS) __ceph_flush_snaps(ci, session); __ceph_flush_snaps(ci, session); Loading Loading @@ -2323,6 +2319,8 @@ static void __kick_flushing_caps(struct ceph_mds_client *mdsc, int ret; int ret; u64 first_tid = 0; u64 first_tid = 0; ci->i_ceph_flags &= ~CEPH_I_KICK_FLUSH; list_for_each_entry(cf, &ci->i_cap_flush_list, i_list) { list_for_each_entry(cf, &ci->i_cap_flush_list, i_list) { if (cf->tid < first_tid) if (cf->tid < first_tid) continue; continue; Loading Loading @@ -2412,7 +2410,6 @@ void ceph_early_kick_flushing_caps(struct ceph_mds_client *mdsc, */ */ if ((cap->issued & ci->i_flushing_caps) != if ((cap->issued & ci->i_flushing_caps) != ci->i_flushing_caps) { ci->i_flushing_caps) { ci->i_ceph_flags &= ~CEPH_I_KICK_FLUSH; /* encode_caps_cb() also will reset these sequence /* encode_caps_cb() also will reset these sequence * numbers. make sure sequence numbers in cap flush * numbers. make sure sequence numbers in cap flush * message match later reconnect message */ * message match later reconnect message */ Loading Loading @@ -2452,7 +2449,6 @@ void ceph_kick_flushing_caps(struct ceph_mds_client *mdsc, continue; continue; } } if (ci->i_ceph_flags & CEPH_I_KICK_FLUSH) { if (ci->i_ceph_flags & CEPH_I_KICK_FLUSH) { ci->i_ceph_flags &= ~CEPH_I_KICK_FLUSH; __kick_flushing_caps(mdsc, session, ci, __kick_flushing_caps(mdsc, session, ci, oldest_flush_tid); oldest_flush_tid); } } Loading Loading @@ -2480,7 +2476,6 @@ static void kick_flushing_inode_caps(struct ceph_mds_client *mdsc, oldest_flush_tid = __get_oldest_flush_tid(mdsc); oldest_flush_tid = __get_oldest_flush_tid(mdsc); spin_unlock(&mdsc->cap_dirty_lock); spin_unlock(&mdsc->cap_dirty_lock); ci->i_ceph_flags &= ~CEPH_I_KICK_FLUSH; __kick_flushing_caps(mdsc, session, ci, oldest_flush_tid); __kick_flushing_caps(mdsc, session, ci, oldest_flush_tid); spin_unlock(&ci->i_ceph_lock); spin_unlock(&ci->i_ceph_lock); } else { } else { Loading