Lines Matching refs:ses
103 static bool is_session_dead(struct nfsd4_session *ses) in is_session_dead() argument
105 return ses->se_flags & NFS4_SESSION_DEAD; in is_session_dead()
108 static __be32 mark_session_dead_locked(struct nfsd4_session *ses, int ref_held_by_me) in mark_session_dead_locked() argument
110 if (atomic_read(&ses->se_ref) > ref_held_by_me) in mark_session_dead_locked()
112 ses->se_flags |= NFS4_SESSION_DEAD; in mark_session_dead_locked()
178 static __be32 nfsd4_get_session_locked(struct nfsd4_session *ses) in nfsd4_get_session_locked() argument
182 if (is_session_dead(ses)) in nfsd4_get_session_locked()
184 status = get_client_locked(ses->se_client); in nfsd4_get_session_locked()
187 atomic_inc(&ses->se_ref); in nfsd4_get_session_locked()
191 static void nfsd4_put_session_locked(struct nfsd4_session *ses) in nfsd4_put_session_locked() argument
193 struct nfs4_client *clp = ses->se_client; in nfsd4_put_session_locked()
198 if (atomic_dec_and_test(&ses->se_ref) && is_session_dead(ses)) in nfsd4_put_session_locked()
199 free_session(ses); in nfsd4_put_session_locked()
203 static void nfsd4_put_session(struct nfsd4_session *ses) in nfsd4_put_session() argument
205 struct nfs4_client *clp = ses->se_client; in nfsd4_put_session()
209 nfsd4_put_session_locked(ses); in nfsd4_put_session()
1357 gen_sessionid(struct nfsd4_session *ses) in gen_sessionid() argument
1359 struct nfs4_client *clp = ses->se_client; in gen_sessionid()
1362 sid = (struct nfsd4_sessionid *)ses->se_sessionid.data; in gen_sessionid()
1383 free_session_slots(struct nfsd4_session *ses) in free_session_slots() argument
1387 for (i = 0; i < ses->se_fchannel.maxreqs; i++) in free_session_slots()
1388 kfree(ses->se_slots[i]); in free_session_slots()
1503 static void __nfsd4_hash_conn(struct nfsd4_conn *conn, struct nfsd4_session *ses) in __nfsd4_hash_conn() argument
1505 conn->cn_session = ses; in __nfsd4_hash_conn()
1506 list_add(&conn->cn_persession, &ses->se_conns); in __nfsd4_hash_conn()
1509 static void nfsd4_hash_conn(struct nfsd4_conn *conn, struct nfsd4_session *ses) in nfsd4_hash_conn() argument
1511 struct nfs4_client *clp = ses->se_client; in nfsd4_hash_conn()
1514 __nfsd4_hash_conn(conn, ses); in nfsd4_hash_conn()
1524 …ic void nfsd4_init_conn(struct svc_rqst *rqstp, struct nfsd4_conn *conn, struct nfsd4_session *ses) in nfsd4_init_conn() argument
1528 nfsd4_hash_conn(conn, ses); in nfsd4_init_conn()
1534 nfsd4_probe_callback_sync(ses->se_client); in nfsd4_init_conn()
1566 static void __free_session(struct nfsd4_session *ses) in __free_session() argument
1568 free_session_slots(ses); in __free_session()
1569 kfree(ses); in __free_session()
1572 static void free_session(struct nfsd4_session *ses) in free_session() argument
1574 nfsd4_del_conns(ses); in free_session()
1575 nfsd4_put_drc_mem(&ses->se_fchannel); in free_session()
1576 __free_session(ses); in free_session()
1658 unhash_session(struct nfsd4_session *ses) in unhash_session() argument
1660 struct nfs4_client *clp = ses->se_client; in unhash_session()
1665 list_del(&ses->se_hash); in unhash_session()
1666 spin_lock(&ses->se_client->cl_lock); in unhash_session()
1667 list_del(&ses->se_perclnt); in unhash_session()
1668 spin_unlock(&ses->se_client->cl_lock); in unhash_session()
1736 struct nfsd4_session *ses; in free_client() local
1737 ses = list_entry(clp->cl_sessions.next, struct nfsd4_session, in free_client()
1739 list_del(&ses->se_perclnt); in free_client()
1740 WARN_ON_ONCE(atomic_read(&ses->se_ref)); in free_client()
1741 free_session(ses); in free_client()
1756 struct nfsd4_session *ses; in unhash_client_locked() local
1772 list_for_each_entry(ses, &clp->cl_sessions, se_perclnt) in unhash_client_locked()
1773 list_del_init(&ses->se_hash); in unhash_client_locked()
2798 struct nfsd4_session *ses; in nfsd4_destroy_session() local
2812 ses = find_in_sessionid_hashtbl(&sessionid->sessionid, net, &status); in nfsd4_destroy_session()
2813 if (!ses) in nfsd4_destroy_session()
2816 if (!mach_creds_match(ses->se_client, r)) in nfsd4_destroy_session()
2818 status = mark_session_dead_locked(ses, 1 + ref_held_by_me); in nfsd4_destroy_session()
2821 unhash_session(ses); in nfsd4_destroy_session()
2824 nfsd4_probe_callback_sync(ses->se_client); in nfsd4_destroy_session()
2829 nfsd4_put_session_locked(ses); in nfsd4_destroy_session()
2848 static __be32 nfsd4_sequence_check_conn(struct nfsd4_conn *new, struct nfsd4_session *ses) in nfsd4_sequence_check_conn() argument
2850 struct nfs4_client *clp = ses->se_client; in nfsd4_sequence_check_conn()
2856 c = __nfsd4_find_conn(new->cn_xprt, ses); in nfsd4_sequence_check_conn()
2862 __nfsd4_hash_conn(new, ses); in nfsd4_sequence_check_conn()