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()
1339 gen_sessionid(struct nfsd4_session *ses) in gen_sessionid() argument
1341 struct nfs4_client *clp = ses->se_client; in gen_sessionid()
1344 sid = (struct nfsd4_sessionid *)ses->se_sessionid.data; in gen_sessionid()
1365 free_session_slots(struct nfsd4_session *ses) in free_session_slots() argument
1369 for (i = 0; i < ses->se_fchannel.maxreqs; i++) in free_session_slots()
1370 kfree(ses->se_slots[i]); in free_session_slots()
1485 static void __nfsd4_hash_conn(struct nfsd4_conn *conn, struct nfsd4_session *ses) in __nfsd4_hash_conn() argument
1487 conn->cn_session = ses; in __nfsd4_hash_conn()
1488 list_add(&conn->cn_persession, &ses->se_conns); in __nfsd4_hash_conn()
1491 static void nfsd4_hash_conn(struct nfsd4_conn *conn, struct nfsd4_session *ses) in nfsd4_hash_conn() argument
1493 struct nfs4_client *clp = ses->se_client; in nfsd4_hash_conn()
1496 __nfsd4_hash_conn(conn, ses); in nfsd4_hash_conn()
1506 …ic void nfsd4_init_conn(struct svc_rqst *rqstp, struct nfsd4_conn *conn, struct nfsd4_session *ses) in nfsd4_init_conn() argument
1510 nfsd4_hash_conn(conn, ses); in nfsd4_init_conn()
1516 nfsd4_probe_callback_sync(ses->se_client); in nfsd4_init_conn()
1548 static void __free_session(struct nfsd4_session *ses) in __free_session() argument
1550 free_session_slots(ses); in __free_session()
1551 kfree(ses); in __free_session()
1554 static void free_session(struct nfsd4_session *ses) in free_session() argument
1556 nfsd4_del_conns(ses); in free_session()
1557 nfsd4_put_drc_mem(&ses->se_fchannel); in free_session()
1558 __free_session(ses); in free_session()
1640 unhash_session(struct nfsd4_session *ses) in unhash_session() argument
1642 struct nfs4_client *clp = ses->se_client; in unhash_session()
1647 list_del(&ses->se_hash); in unhash_session()
1648 spin_lock(&ses->se_client->cl_lock); in unhash_session()
1649 list_del(&ses->se_perclnt); in unhash_session()
1650 spin_unlock(&ses->se_client->cl_lock); in unhash_session()
1718 struct nfsd4_session *ses; in free_client() local
1719 ses = list_entry(clp->cl_sessions.next, struct nfsd4_session, in free_client()
1721 list_del(&ses->se_perclnt); in free_client()
1722 WARN_ON_ONCE(atomic_read(&ses->se_ref)); in free_client()
1723 free_session(ses); in free_client()
1738 struct nfsd4_session *ses; in unhash_client_locked() local
1754 list_for_each_entry(ses, &clp->cl_sessions, se_perclnt) in unhash_client_locked()
1755 list_del_init(&ses->se_hash); in unhash_client_locked()
2774 struct nfsd4_session *ses; in nfsd4_destroy_session() local
2788 ses = find_in_sessionid_hashtbl(&sessionid->sessionid, net, &status); in nfsd4_destroy_session()
2789 if (!ses) in nfsd4_destroy_session()
2792 if (!mach_creds_match(ses->se_client, r)) in nfsd4_destroy_session()
2794 status = mark_session_dead_locked(ses, 1 + ref_held_by_me); in nfsd4_destroy_session()
2797 unhash_session(ses); in nfsd4_destroy_session()
2800 nfsd4_probe_callback_sync(ses->se_client); in nfsd4_destroy_session()
2805 nfsd4_put_session_locked(ses); in nfsd4_destroy_session()
2824 static __be32 nfsd4_sequence_check_conn(struct nfsd4_conn *new, struct nfsd4_session *ses) in nfsd4_sequence_check_conn() argument
2826 struct nfs4_client *clp = ses->se_client; in nfsd4_sequence_check_conn()
2832 c = __nfsd4_find_conn(new->cn_xprt, ses); in nfsd4_sequence_check_conn()
2838 __nfsd4_hash_conn(new, ses); in nfsd4_sequence_check_conn()