Lines Matching refs:session

512 		  struct ceph_mds_session *session, u64 cap_id,  in ceph_add_cap()  argument
520 int mds = session->s_mds; in ceph_add_cap()
524 session->s_mds, cap_id, ceph_cap_string(issued), seq); in ceph_add_cap()
548 cap->session = session; in ceph_add_cap()
549 spin_lock(&session->s_cap_lock); in ceph_add_cap()
550 list_add_tail(&cap->session_caps, &session->s_caps); in ceph_add_cap()
551 session->s_nr_caps++; in ceph_add_cap()
552 spin_unlock(&session->s_cap_lock); in ceph_add_cap()
631 cap->cap_gen = session->s_cap_gen; in ceph_add_cap()
647 spin_lock(&cap->session->s_gen_ttl_lock); in __cap_is_valid()
648 gen = cap->session->s_cap_gen; in __cap_is_valid()
649 ttl = cap->session->s_cap_ttl; in __cap_is_valid()
650 spin_unlock(&cap->session->s_gen_ttl_lock); in __cap_is_valid()
723 struct ceph_mds_session *s = cap->session; in __touch_cap()
921 struct ceph_mds_session *session = cap->session; in __ceph_remove_cap() local
930 spin_lock(&session->s_cap_lock); in __ceph_remove_cap()
931 if (session->s_cap_iterator == cap) { in __ceph_remove_cap()
934 cap, cap->session); in __ceph_remove_cap()
937 session->s_nr_caps--; in __ceph_remove_cap()
938 cap->session = NULL; in __ceph_remove_cap()
949 (!session->s_cap_reconnect || cap->cap_gen == session->s_cap_gen)) { in __ceph_remove_cap()
953 &session->s_cap_releases); in __ceph_remove_cap()
954 session->s_num_cap_releases++; in __ceph_remove_cap()
962 spin_unlock(&session->s_cap_lock); in __ceph_remove_cap()
988 static int send_cap_msg(struct ceph_mds_session *session, in send_cap_msg() argument
1070 ceph_con_send(&session->s_con, msg); in send_cap_msg()
1124 struct ceph_mds_session *session; in __send_cap() local
1137 inode, cap, cap->session, in __send_cap()
1142 session = cap->session; in __send_cap()
1198 ret = send_cap_msg(session, ceph_vino(inode).ino, cap_id, in __send_cap()
1238 struct ceph_mds_session *session = NULL; /* if session != NULL, we hold in __ceph_flush_snaps() local
1245 session = *psession; in __ceph_flush_snaps()
1275 mds = ci->i_auth_cap->session->s_mds; in __ceph_flush_snaps()
1278 if (session && session->s_mds != mds) { in __ceph_flush_snaps()
1279 dout("oops, wrong session %p mutex\n", session); in __ceph_flush_snaps()
1283 mutex_unlock(&session->s_mutex); in __ceph_flush_snaps()
1284 ceph_put_mds_session(session); in __ceph_flush_snaps()
1285 session = NULL; in __ceph_flush_snaps()
1287 if (!session) { in __ceph_flush_snaps()
1290 session = __ceph_lookup_mds_session(mdsc, mds); in __ceph_flush_snaps()
1292 if (session) { in __ceph_flush_snaps()
1294 session); in __ceph_flush_snaps()
1295 mutex_lock(&session->s_mutex); in __ceph_flush_snaps()
1313 &session->s_cap_snaps_flushing); in __ceph_flush_snaps()
1318 send_cap_msg(session, ceph_vino(inode).ino, 0, in __ceph_flush_snaps()
1342 *psession = session; in __ceph_flush_snaps()
1343 else if (session) { in __ceph_flush_snaps()
1344 mutex_unlock(&session->s_mutex); in __ceph_flush_snaps()
1345 ceph_put_mds_session(session); in __ceph_flush_snaps()
1486 struct ceph_mds_session *session, in __mark_caps_flushing() argument
1518 list_add_tail(&ci->i_flushing_item, &session->s_cap_flushing); in __mark_caps_flushing()
1522 list_move_tail(&ci->i_flushing_item, &session->s_cap_flushing); in __mark_caps_flushing()
1570 struct ceph_mds_session *session) in ceph_check_caps() argument
1599 __ceph_flush_snaps(ci, &session, 0); in ceph_check_caps()
1763 if (session && session != cap->session) { in ceph_check_caps()
1764 dout("oops, wrong session %p mutex\n", session); in ceph_check_caps()
1765 mutex_unlock(&session->s_mutex); in ceph_check_caps()
1766 session = NULL; in ceph_check_caps()
1768 if (!session) { in ceph_check_caps()
1769 session = cap->session; in ceph_check_caps()
1770 if (mutex_trylock(&session->s_mutex) == 0) { in ceph_check_caps()
1772 session); in ceph_check_caps()
1778 mutex_lock(&session->s_mutex); in ceph_check_caps()
1796 flushing = __mark_caps_flushing(inode, session, in ceph_check_caps()
1833 if (session) in ceph_check_caps()
1834 mutex_unlock(&session->s_mutex); in ceph_check_caps()
1846 struct ceph_mds_session *session = NULL; in try_flush_caps() local
1862 if (!session || session != cap->session) { in try_flush_caps()
1864 if (session) in try_flush_caps()
1865 mutex_unlock(&session->s_mutex); in try_flush_caps()
1866 session = cap->session; in try_flush_caps()
1867 mutex_lock(&session->s_mutex); in try_flush_caps()
1870 if (cap->session->s_state < CEPH_MDS_SESSION_OPEN) in try_flush_caps()
1873 flushing = __mark_caps_flushing(inode, session, &flush_tid, in try_flush_caps()
1897 if (session) in try_flush_caps()
1898 mutex_unlock(&session->s_mutex); in try_flush_caps()
2094 struct ceph_mds_session *session) in kick_flushing_capsnaps() argument
2098 dout("kick_flushing_capsnaps mds%d\n", session->s_mds); in kick_flushing_capsnaps()
2099 list_for_each_entry(capsnap, &session->s_cap_snaps_flushing, in kick_flushing_capsnaps()
2107 if (cap && cap->session == session) { in kick_flushing_capsnaps()
2110 __ceph_flush_snaps(ci, &session, 1); in kick_flushing_capsnaps()
2113 cap, session->s_mds); in kick_flushing_capsnaps()
2120 struct ceph_mds_session *session, in __kick_flushing_caps() argument
2138 if (!(cap && cap->session == session)) { in __kick_flushing_caps()
2140 cap, session->s_mds); in __kick_flushing_caps()
2171 struct ceph_mds_session *session) in ceph_early_kick_flushing_caps() argument
2176 dout("early_kick_flushing_caps mds%d\n", session->s_mds); in ceph_early_kick_flushing_caps()
2177 list_for_each_entry(ci, &session->s_cap_flushing, i_flushing_item) { in ceph_early_kick_flushing_caps()
2180 if (!(cap && cap->session == session)) { in ceph_early_kick_flushing_caps()
2182 &ci->vfs_inode, cap, session->s_mds); in ceph_early_kick_flushing_caps()
2197 if (!__kick_flushing_caps(mdsc, session, ci)) in ceph_early_kick_flushing_caps()
2207 struct ceph_mds_session *session) in ceph_kick_flushing_caps() argument
2211 kick_flushing_capsnaps(mdsc, session); in ceph_kick_flushing_caps()
2213 dout("kick_flushing_caps mds%d\n", session->s_mds); in ceph_kick_flushing_caps()
2214 list_for_each_entry(ci, &session->s_cap_flushing, i_flushing_item) { in ceph_kick_flushing_caps()
2215 int delayed = __kick_flushing_caps(mdsc, session, ci); in ceph_kick_flushing_caps()
2225 struct ceph_mds_session *session, in kick_flushing_inode_caps() argument
2236 __ceph_flush_snaps(ci, &session, 1); in kick_flushing_inode_caps()
2243 &cap->session->s_cap_flushing); in kick_flushing_inode_caps()
2248 delayed = __kick_flushing_caps(mdsc, session, ci); in kick_flushing_inode_caps()
2399 struct ceph_mds_session *s = ci->i_auth_cap->session; in try_get_cap_refs()
2755 struct ceph_mds_session *session, in handle_cap_grant() argument
2761 int mds = session->s_mds; in handle_cap_grant()
2820 cap->cap_gen = session->s_cap_gen; in handle_cap_grant()
2960 kick_flushing_inode_caps(mdsc, session, inode); in handle_cap_grant()
2991 session); in handle_cap_grant()
2993 ceph_check_caps(ci, CHECK_CAPS_NODELAY, session); in handle_cap_grant()
2995 mutex_unlock(&session->s_mutex); in handle_cap_grant()
3004 struct ceph_mds_session *session, in handle_cap_flush_ack() argument
3036 inode, session->s_mds, seq, ceph_cap_string(dirty), in handle_cap_flush_ack()
3059 if (!list_empty(&session->s_cap_flushing)) in handle_cap_flush_ack()
3061 session->s_mds, in handle_cap_flush_ack()
3062 &list_entry(session->s_cap_flushing.next, in handle_cap_flush_ack()
3106 struct ceph_mds_session *session) in handle_cap_flushsnap_ack() argument
3115 inode, ci, session->s_mds, follows); in handle_cap_flushsnap_ack()
3153 struct ceph_mds_session *session) in handle_cap_trunc() argument
3157 int mds = session->s_mds; in handle_cap_trunc()
3191 struct ceph_mds_session *session) in handle_cap_export() argument
3201 int mds = session->s_mds; in handle_cap_export()
3251 &tcap->session->s_cap_flushing); in handle_cap_export()
3268 mutex_unlock(&session->s_mutex); in handle_cap_export()
3274 mutex_lock(&session->s_mutex); in handle_cap_export()
3279 mutex_lock_nested(&session->s_mutex, in handle_cap_export()
3292 mutex_unlock(&session->s_mutex); in handle_cap_export()
3309 struct ceph_mds_session *session, in handle_cap_import() argument
3315 int mds = session->s_mds; in handle_cap_import()
3357 ceph_add_cap(inode, session, cap_id, -1, caps, wanted, seq, mseq, in handle_cap_import()
3391 void ceph_handle_caps(struct ceph_mds_session *session, in ceph_handle_caps() argument
3394 struct ceph_mds_client *mdsc = session->s_mdsc; in ceph_handle_caps()
3402 int mds = session->s_mds; in ceph_handle_caps()
3472 mutex_lock(&session->s_mutex); in ceph_handle_caps()
3473 session->s_seq++; in ceph_handle_caps()
3474 dout(" mds%d seq %lld cap seq %u\n", session->s_mds, session->s_seq, in ceph_handle_caps()
3487 spin_lock(&session->s_cap_lock); in ceph_handle_caps()
3489 &session->s_cap_releases); in ceph_handle_caps()
3490 session->s_num_cap_releases++; in ceph_handle_caps()
3491 spin_unlock(&session->s_cap_lock); in ceph_handle_caps()
3499 handle_cap_flushsnap_ack(inode, tid, h, session); in ceph_handle_caps()
3503 handle_cap_export(inode, h, peer, session); in ceph_handle_caps()
3517 handle_cap_import(mdsc, inode, h, peer, session, in ceph_handle_caps()
3521 msg->middle, session, cap, issued); in ceph_handle_caps()
3545 msg->middle, session, cap, issued); in ceph_handle_caps()
3549 handle_cap_flush_ack(inode, tid, h, session, cap); in ceph_handle_caps()
3553 handle_cap_trunc(inode, h, session); in ceph_handle_caps()
3570 ceph_send_cap_releases(mdsc, session); in ceph_handle_caps()
3573 mutex_unlock(&session->s_mutex); in ceph_handle_caps()