Lines Matching refs:conn

172 static void ksmbd_expire_session(struct ksmbd_conn *conn)
177 down_write(&conn->session_lock);
178 xa_for_each(&conn->sessions, id, sess) {
182 xa_erase(&conn->sessions, sess->id);
188 up_write(&conn->session_lock);
191 int ksmbd_session_register(struct ksmbd_conn *conn,
194 sess->dialect = conn->dialect;
195 memcpy(sess->ClientGUID, conn->ClientGUID, SMB2_CLIENT_GUID_SIZE);
196 ksmbd_expire_session(conn);
197 return xa_err(xa_store(&conn->sessions, sess->id, sess, GFP_KERNEL));
200 static int ksmbd_chann_del(struct ksmbd_conn *conn, struct ksmbd_session *sess)
204 chann = xa_erase(&sess->ksmbd_chann_list, (long)conn);
212 void ksmbd_sessions_deregister(struct ksmbd_conn *conn)
218 if (conn->binding) {
223 if (!ksmbd_chann_del(conn, sess) &&
232 down_write(&conn->session_lock);
233 xa_for_each(&conn->sessions, id, sess) {
238 if (chann->conn != conn)
239 ksmbd_conn_set_exiting(chann->conn);
242 ksmbd_chann_del(conn, sess);
244 xa_erase(&conn->sessions, sess->id);
249 up_write(&conn->session_lock);
252 struct ksmbd_session *ksmbd_session_lookup(struct ksmbd_conn *conn,
257 down_read(&conn->session_lock);
258 sess = xa_load(&conn->sessions, id);
261 up_read(&conn->session_lock);
278 struct ksmbd_session *ksmbd_session_lookup_all(struct ksmbd_conn *conn,
283 sess = ksmbd_session_lookup(conn, id);
284 if (!sess && conn->binding)
291 struct preauth_session *ksmbd_preauth_session_alloc(struct ksmbd_conn *conn,
301 memcpy(sess->Preauth_HashValue, conn->preauth_info->Preauth_HashValue,
303 list_add(&sess->preauth_entry, &conn->preauth_sess_table);
308 void destroy_previous_session(struct ksmbd_conn *conn,
315 down_write(&conn->session_lock);
330 up_write(&conn->session_lock);
340 struct preauth_session *ksmbd_preauth_session_lookup(struct ksmbd_conn *conn,
345 list_for_each_entry(sess, &conn->preauth_sess_table, preauth_entry) {