Lines Matching refs:conn

96 	if (ksmbd_conn_exiting(work->conn) ||
97 ksmbd_conn_need_reconnect(work->conn)) {
108 static int __process_request(struct ksmbd_work *work, struct ksmbd_conn *conn,
119 conn->ops->set_rsp_status(work, STATUS_INVALID_PARAMETER);
123 command = conn->ops->get_cmd_val(work);
127 if (command >= conn->max_cmds) {
128 conn->ops->set_rsp_status(work, STATUS_INVALID_PARAMETER);
132 cmds = &conn->cmds[command];
135 conn->ops->set_rsp_status(work, STATUS_NOT_IMPLEMENTED);
139 if (work->sess && conn->ops->is_sign_req(work, command)) {
140 ret = conn->ops->check_sign_req(work);
142 conn->ops->set_rsp_status(work, STATUS_ACCESS_DENIED);
164 struct ksmbd_conn *conn)
170 if (conn->ops->is_transform_hdr &&
171 conn->ops->is_transform_hdr(work->request_buf)) {
172 rc = conn->ops->decrypt_req(work);
178 if (conn->ops->allocate_rsp_buf(work))
181 rc = conn->ops->init_rsp_hdr(work);
184 conn->ops->set_rsp_status(work, STATUS_INVALID_HANDLE);
189 if (conn->ops->check_user_session) {
190 rc = conn->ops->check_user_session(work);
193 conn->ops->set_rsp_status(work,
196 conn->ops->set_rsp_status(work,
200 rc = conn->ops->get_ksmbd_tcon(work);
203 conn->ops->set_rsp_status(work,
206 conn->ops->set_rsp_status(work,
213 rc = __process_request(work, conn, &command);
221 if (conn->ops->set_rsp_credits) {
222 spin_lock(&conn->credits_lock);
223 rc = conn->ops->set_rsp_credits(work);
224 spin_unlock(&conn->credits_lock);
226 conn->ops->set_rsp_status(work,
236 conn->ops->is_sign_req(work, command)))
237 conn->ops->set_sign_rsp(work);
245 conn->ops->encrypt_resp) {
246 rc = conn->ops->encrypt_resp(work);
248 conn->ops->set_rsp_status(work, STATUS_DATA_ERROR);
263 struct ksmbd_conn *conn = work->conn;
265 atomic64_inc(&conn->stats.request_served);
267 __handle_ksmbd_work(work, conn);
276 if (!atomic_dec_return(&conn->r_count) && waitqueue_active(&conn->r_count_q))
277 wake_up(&conn->r_count_q);
283 * @conn: connection instance
287 static int queue_ksmbd_work(struct ksmbd_conn *conn)
298 work->conn = conn;
299 work->request_buf = conn->request_buf;
300 conn->request_buf = NULL;
309 atomic_inc(&conn->r_count);
311 conn->last_active = jiffies;
317 static int ksmbd_server_process_request(struct ksmbd_conn *conn)
319 return queue_ksmbd_work(conn);
322 static int ksmbd_server_terminate_conn(struct ksmbd_conn *conn)
324 ksmbd_sessions_deregister(conn);
325 destroy_lease_table(conn);
469 "oplock", "ipc", "conn",