Lines Matching refs:session
50 struct ceph_mds_session *session,
626 struct ceph_mds_session *session) in change_auth_cap_ses() argument
633 spin_lock(&session->s_mdsc->cap_dirty_lock); in change_auth_cap_ses()
635 list_move(&ci->i_dirty_item, &session->s_cap_dirty); in change_auth_cap_ses()
637 list_move_tail(&ci->i_flushing_item, &session->s_cap_flushing); in change_auth_cap_ses()
638 spin_unlock(&session->s_mdsc->cap_dirty_lock); in change_auth_cap_ses()
651 struct ceph_mds_session *session, u64 cap_id, in ceph_add_cap() argument
660 int mds = session->s_mds; in ceph_add_cap()
667 ceph_vinop(inode), session->s_mds, cap_id, in ceph_add_cap()
670 gen = atomic_read(&session->s_cap_gen); in ceph_add_cap()
687 cap->session = session; in ceph_add_cap()
688 spin_lock(&session->s_cap_lock); in ceph_add_cap()
689 list_add_tail(&cap->session_caps, &session->s_caps); in ceph_add_cap()
690 session->s_nr_caps++; in ceph_add_cap()
692 spin_unlock(&session->s_cap_lock); in ceph_add_cap()
694 spin_lock(&session->s_cap_lock); in ceph_add_cap()
695 list_move_tail(&cap->session_caps, &session->s_caps); in ceph_add_cap()
696 spin_unlock(&session->s_cap_lock); in ceph_add_cap()
756 ci->i_auth_cap->session != cap->session) in ceph_add_cap()
757 change_auth_cap_ses(ci, cap->session); in ceph_add_cap()
790 struct ceph_client *cl = cap->session->s_mdsc->fsc->client; in __cap_is_valid()
794 gen = atomic_read(&cap->session->s_cap_gen); in __cap_is_valid()
795 ttl = cap->session->s_cap_ttl; in __cap_is_valid()
871 struct ceph_mds_session *s = cap->session; in __touch_cap()
1123 struct ceph_mds_session *session = cap->session; in __ceph_remove_cap() local
1124 struct ceph_client *cl = session->s_mdsc->fsc->client; in __ceph_remove_cap()
1148 spin_lock(&session->s_cap_lock); in __ceph_remove_cap()
1149 if (session->s_cap_iterator == cap) { in __ceph_remove_cap()
1152 cap->session); in __ceph_remove_cap()
1155 session->s_nr_caps--; in __ceph_remove_cap()
1157 cap->session = NULL; in __ceph_remove_cap()
1168 (!session->s_cap_reconnect || in __ceph_remove_cap()
1169 cap->cap_gen == atomic_read(&session->s_cap_gen))) { in __ceph_remove_cap()
1172 __ceph_queue_cap_release(session, cap); in __ceph_remove_cap()
1180 spin_unlock(&session->s_cap_lock); in __ceph_remove_cap()
1221 struct ceph_mds_session *session; member
1247 struct ceph_mds_client *mdsc = arg->session->s_mdsc; in encode_cap_msg()
1406 inode, ceph_vinop(inode), cap, cap->session, in __prep_cap()
1423 arg->session = cap->session; in __prep_cap()
1535 __cap_delay_requeue(arg->session->s_mdsc, ci); in __send_cap()
1541 ceph_con_send(&arg->session->s_con, msg); in __send_cap()
1549 struct ceph_mds_session *session, in __send_flush_snap() argument
1556 arg.session = session; in __send_flush_snap()
1603 ceph_con_send(&arg.session->s_con, msg); in __send_flush_snap()
1617 struct ceph_mds_session *session) in __ceph_flush_snaps() argument
1622 struct ceph_mds_client *mdsc = session->s_mdsc; in __ceph_flush_snaps()
1629 session); in __ceph_flush_snaps()
1656 &session->s_cap_flushing); in __ceph_flush_snaps()
1675 if (!(cap && cap->session == session)) { in __ceph_flush_snaps()
1677 inode, ceph_vinop(inode), cap, session->s_mds); in __ceph_flush_snaps()
1702 ret = __send_flush_snap(inode, session, capsnap, cap->mseq, in __ceph_flush_snaps()
1722 struct ceph_mds_session *session = NULL; in ceph_flush_snaps() local
1728 session = *psession; in ceph_flush_snaps()
1740 mds = ci->i_auth_cap->session->s_mds; in ceph_flush_snaps()
1741 if (session && session->s_mds != mds) { in ceph_flush_snaps()
1742 doutc(cl, " oops, wrong session %p mutex\n", session); in ceph_flush_snaps()
1743 ceph_put_mds_session(session); in ceph_flush_snaps()
1744 session = NULL; in ceph_flush_snaps()
1746 if (!session) { in ceph_flush_snaps()
1749 session = __ceph_lookup_mds_session(mdsc, mds); in ceph_flush_snaps()
1756 __kick_flushing_caps(mdsc, session, ci, 0); in ceph_flush_snaps()
1758 __ceph_flush_snaps(ci, session); in ceph_flush_snaps()
1763 *psession = session; in ceph_flush_snaps()
1765 ceph_put_mds_session(session); in ceph_flush_snaps()
1807 struct ceph_mds_session *session = ci->i_auth_cap->session; in __ceph_mark_dirty_caps() local
1822 list_add(&ci->i_dirty_item, &session->s_cap_dirty); in __ceph_mark_dirty_caps()
1909 struct ceph_mds_session *session, bool wake, in __mark_caps_flushing() argument
1944 list_add_tail(&ci->i_flushing_item, &session->s_cap_flushing); in __mark_caps_flushing()
2024 struct ceph_mds_session *session = NULL; in ceph_check_caps() local
2218 ceph_put_mds_session(session); in ceph_check_caps()
2219 session = ceph_get_mds_session(cap->session); in ceph_check_caps()
2227 __kick_flushing_caps(mdsc, session, ci, 0); in ceph_check_caps()
2229 __ceph_flush_snaps(ci, session); in ceph_check_caps()
2236 flush_tid = __mark_caps_flushing(inode, session, false, in ceph_check_caps()
2239 list_empty(&session->s_cap_dirty)) in ceph_check_caps()
2271 ceph_put_mds_session(session); in ceph_check_caps()
2293 struct ceph_mds_session *session = cap->session; in try_flush_caps() local
2295 if (session->s_state < CEPH_MDS_SESSION_OPEN) { in try_flush_caps()
2303 __kick_flushing_caps(mdsc, session, ci, 0); in try_flush_caps()
2305 __ceph_flush_snaps(ci, session); in try_flush_caps()
2310 flush_tid = __mark_caps_flushing(inode, session, true, in try_flush_caps()
2434 s = ci->i_auth_cap->session; in flush_mdlog_and_wait_inode_unsafe_requests()
2561 struct ceph_mds_session *session, in __kick_flushing_caps() argument
2593 if (!(cap && cap->session == session)) { in __kick_flushing_caps()
2595 inode, cap, session->s_mds); in __kick_flushing_caps()
2627 ret = __send_flush_snap(inode, session, capsnap, cap->mseq, in __kick_flushing_caps()
2644 struct ceph_mds_session *session) in ceph_early_kick_flushing_caps() argument
2651 doutc(cl, "mds%d\n", session->s_mds); in ceph_early_kick_flushing_caps()
2657 list_for_each_entry(ci, &session->s_cap_flushing, i_flushing_item) { in ceph_early_kick_flushing_caps()
2662 if (!(cap && cap->session == session)) { in ceph_early_kick_flushing_caps()
2665 session->s_mds); in ceph_early_kick_flushing_caps()
2685 __kick_flushing_caps(mdsc, session, ci, in ceph_early_kick_flushing_caps()
2696 struct ceph_mds_session *session) in ceph_kick_flushing_caps() argument
2703 lockdep_assert_held(&session->s_mutex); in ceph_kick_flushing_caps()
2705 doutc(cl, "mds%d\n", session->s_mds); in ceph_kick_flushing_caps()
2711 list_for_each_entry(ci, &session->s_cap_flushing, i_flushing_item) { in ceph_kick_flushing_caps()
2716 if (!(cap && cap->session == session)) { in ceph_kick_flushing_caps()
2719 session->s_mds); in ceph_kick_flushing_caps()
2724 __kick_flushing_caps(mdsc, session, ci, in ceph_kick_flushing_caps()
2731 void ceph_kick_flushing_inode_caps(struct ceph_mds_session *session, in ceph_kick_flushing_inode_caps() argument
2734 struct ceph_mds_client *mdsc = session->s_mdsc; in ceph_kick_flushing_inode_caps()
2748 &cap->session->s_cap_flushing); in ceph_kick_flushing_inode_caps()
2752 __kick_flushing_caps(mdsc, session, ci, oldest_flush_tid); in ceph_kick_flushing_inode_caps()
2919 struct ceph_mds_session *s = ci->i_auth_cap->session; in try_get_cap_refs()
3485 struct ceph_mds_session *session, in handle_cap_grant() argument
3491 __releases(session->s_mdsc->snap_rwsem) in handle_cap_grant()
3501 bool was_stale = cap->cap_gen < atomic_read(&session->s_cap_gen); in handle_cap_grant()
3520 ceph_vinop(inode), cap, session->s_mds, seq, in handle_cap_grant()
3564 cap->cap_gen = atomic_read(&session->s_cap_gen); in handle_cap_grant()
3772 ceph_kick_flushing_inode_caps(session, ci); in handle_cap_grant()
3774 up_read(&session->s_mdsc->snap_rwsem); in handle_cap_grant()
3799 mutex_unlock(&session->s_mutex); in handle_cap_grant()
3812 struct ceph_mds_session *session, in handle_cap_flush_ack() argument
3856 inode, ceph_vinop(inode), session->s_mds, seq, in handle_cap_flush_ack()
3874 if (!list_empty(&session->s_cap_flushing)) { in handle_cap_flush_ack()
3876 &list_first_entry(&session->s_cap_flushing, in handle_cap_flush_ack()
3880 session->s_mds, inode, ceph_vinop(inode)); in handle_cap_flush_ack()
3970 struct ceph_mds_session *session) in handle_cap_flushsnap_ack() argument
3981 ceph_vinop(inode), ci, session->s_mds, follows); in handle_cap_flushsnap_ack()
4022 struct ceph_mds_session *session, in handle_cap_trunc() argument
4027 int mds = session->s_mds; in handle_cap_trunc()
4066 struct ceph_mds_session *session) in handle_cap_export() argument
4076 int mds = session->s_mds; in handle_cap_export()
4132 change_auth_cap_ses(ci, tcap->session); in handle_cap_export()
4148 &tcap->session->s_cap_flushing); in handle_cap_export()
4158 mutex_unlock(&session->s_mutex); in handle_cap_export()
4164 mutex_lock(&session->s_mutex); in handle_cap_export()
4169 mutex_lock_nested(&session->s_mutex, in handle_cap_export()
4177 mutex_lock(&session->s_mutex); in handle_cap_export()
4184 mutex_unlock(&session->s_mutex); in handle_cap_export()
4201 struct ceph_mds_session *session, in handle_cap_import() argument
4207 int mds = session->s_mds; in handle_cap_import()
4252 ceph_add_cap(inode, session, cap_id, caps, wanted, seq, mseq, in handle_cap_import()
4327 void ceph_handle_caps(struct ceph_mds_session *session, in ceph_handle_caps() argument
4330 struct ceph_mds_client *mdsc = session->s_mdsc; in ceph_handle_caps()
4350 if (!ceph_inc_mds_stopping_blocker(mdsc, session)) in ceph_handle_caps()
4452 session->s_mds, ceph_cap_op_name(op), vino.ino, vino.snap, inode, in ceph_handle_caps()
4455 mutex_lock(&session->s_mutex); in ceph_handle_caps()
4477 h, session); in ceph_handle_caps()
4481 handle_cap_export(inode, h, peer, session); in ceph_handle_caps()
4500 handle_cap_import(mdsc, inode, h, peer, session, in ceph_handle_caps()
4502 handle_cap_grant(inode, session, cap, in ceph_handle_caps()
4511 cap = __get_cap_for_mds(ceph_inode(inode), session->s_mds); in ceph_handle_caps()
4515 session->s_mds); in ceph_handle_caps()
4534 handle_cap_grant(inode, session, cap, in ceph_handle_caps()
4540 h, session, cap); in ceph_handle_caps()
4544 queue_trunc = handle_cap_trunc(inode, h, session, in ceph_handle_caps()
4558 mutex_unlock(&session->s_mutex); in ceph_handle_caps()
4587 spin_lock(&session->s_cap_lock); in ceph_handle_caps()
4588 __ceph_queue_cap_release(session, cap); in ceph_handle_caps()
4589 spin_unlock(&session->s_cap_lock); in ceph_handle_caps()
4591 ceph_flush_session_cap_releases(mdsc, session); in ceph_handle_caps()