/linux-master/fs/smb/server/ |
H A D | auth.c | 124 static int calc_ntlmv2_hash(struct ksmbd_conn *conn, struct ksmbd_session *sess, argument 161 conn->local_nls); 176 /* Convert domain name or conn name to unicode and uppercase */ 185 conn->local_nls); 211 * @conn: connection 220 int ksmbd_auth_ntlmv2(struct ksmbd_conn *conn, struct ksmbd_session *sess, argument 230 rc = calc_ntlmv2_hash(conn, sess, ntlmv2_hash, domain_name); 300 * @conn: connection 306 int blob_len, struct ksmbd_conn *conn, 337 dn_len, true, conn 305 ksmbd_decode_ntlmssp_auth_blob(struct authenticate_message *authblob, int blob_len, struct ksmbd_conn *conn, struct ksmbd_session *sess) argument 386 ksmbd_decode_ntlmssp_neg_blob(struct negotiate_message *negblob, int blob_len, struct ksmbd_conn *conn) argument 413 ksmbd_build_ntlmssp_challenge_blob(struct challenge_message *chgblob, struct ksmbd_conn *conn) argument 577 ksmbd_sign_smb2_pdu(struct ksmbd_conn *conn, char *key, struct kvec *iov, int n_vec, char *sig) argument 628 ksmbd_sign_smb3_pdu(struct ksmbd_conn *conn, char *key, struct kvec *iov, int n_vec, char *sig) argument 676 generate_key(struct ksmbd_conn *conn, struct ksmbd_session *sess, struct kvec label, struct kvec context, __u8 *key, unsigned int key_size) argument 763 generate_smb3signingkey(struct ksmbd_session *sess, struct ksmbd_conn *conn, const struct derivation *signing) argument 797 ksmbd_gen_smb30_signingkey(struct ksmbd_session *sess, struct ksmbd_conn *conn) argument 811 ksmbd_gen_smb311_signingkey(struct ksmbd_session *sess, struct ksmbd_conn *conn) argument 839 generate_smb3encryptionkey(struct ksmbd_conn *conn, struct ksmbd_session *sess, const struct derivation_twin *ptwin) argument 877 ksmbd_gen_smb30_encryptionkey(struct ksmbd_conn *conn, struct ksmbd_session *sess) argument 898 ksmbd_gen_smb311_encryptionkey(struct ksmbd_conn *conn, struct ksmbd_session *sess) argument 919 ksmbd_gen_preauth_integrity_hash(struct ksmbd_conn *conn, char *buf, __u8 *pi_hash) argument 966 ksmbd_gen_sd_hash(struct ksmbd_conn *conn, char *sd_buf, int len, __u8 *pi_hash) argument 1107 struct ksmbd_conn *conn = work->conn; local [all...] |
H A D | auth.h | 42 int ksmbd_auth_ntlmv2(struct ksmbd_conn *conn, struct ksmbd_session *sess, 46 int blob_len, struct ksmbd_conn *conn, 49 int blob_len, struct ksmbd_conn *conn); 52 struct ksmbd_conn *conn); 55 int ksmbd_sign_smb2_pdu(struct ksmbd_conn *conn, char *key, struct kvec *iov, 57 int ksmbd_sign_smb3_pdu(struct ksmbd_conn *conn, char *key, struct kvec *iov, 60 struct ksmbd_conn *conn); 62 struct ksmbd_conn *conn); 63 int ksmbd_gen_smb30_encryptionkey(struct ksmbd_conn *conn, 65 int ksmbd_gen_smb311_encryptionkey(struct ksmbd_conn *conn, [all...] |
H A D | connection.c | 28 * @conn: connection instance to be cleand up 30 * During the thread termination, the corresponding conn instance 31 * resources(sock/memory) are released and finally the conn object is freed. 33 void ksmbd_conn_free(struct ksmbd_conn *conn) argument 36 list_del(&conn->conns_list); 39 xa_destroy(&conn->sessions); 40 kvfree(conn->request_buf); 41 kfree(conn->preauth_info); 42 kfree(conn); 52 struct ksmbd_conn *conn; local 114 struct ksmbd_conn *conn = work->conn; local 130 struct ksmbd_conn *conn = work->conn; local 146 ksmbd_conn_lock(struct ksmbd_conn *conn) argument 151 ksmbd_conn_unlock(struct ksmbd_conn *conn) argument 158 struct ksmbd_conn *conn; local 168 ksmbd_conn_wait_idle(struct ksmbd_conn *conn, u64 sess_id) argument 175 struct ksmbd_conn *conn = work->conn; local 205 ksmbd_conn_rdma_read(struct ksmbd_conn *conn, void *buf, unsigned int buflen, struct smb2_buffer_desc_v1 *desc, unsigned int desc_len) argument 219 ksmbd_conn_rdma_write(struct ksmbd_conn *conn, void *buf, unsigned int buflen, struct smb2_buffer_desc_v1 *desc, unsigned int desc_len) argument 233 ksmbd_conn_alive(struct ksmbd_conn *conn) argument 274 struct ksmbd_conn *conn = (struct ksmbd_conn *)p; local 413 struct ksmbd_conn *conn; local [all...] |
H A D | connection.h | 112 int (*process_fn)(struct ksmbd_conn *conn); 113 int (*terminate_fn)(struct ksmbd_conn *conn); 136 struct ksmbd_conn *conn; member in struct:ksmbd_transport 147 bool ksmbd_conn_alive(struct ksmbd_conn *conn); 148 void ksmbd_conn_wait_idle(struct ksmbd_conn *conn, u64 sess_id); 150 void ksmbd_conn_free(struct ksmbd_conn *conn); 153 int ksmbd_conn_rdma_read(struct ksmbd_conn *conn, 157 int ksmbd_conn_rdma_write(struct ksmbd_conn *conn, 167 void ksmbd_conn_lock(struct ksmbd_conn *conn); 168 void ksmbd_conn_unlock(struct ksmbd_conn *conn); 176 ksmbd_conn_good(struct ksmbd_conn *conn) argument 181 ksmbd_conn_need_negotiate(struct ksmbd_conn *conn) argument 186 ksmbd_conn_need_reconnect(struct ksmbd_conn *conn) argument 191 ksmbd_conn_exiting(struct ksmbd_conn *conn) argument 196 ksmbd_conn_releasing(struct ksmbd_conn *conn) argument 201 ksmbd_conn_set_new(struct ksmbd_conn *conn) argument 206 ksmbd_conn_set_good(struct ksmbd_conn *conn) argument 211 ksmbd_conn_set_need_negotiate(struct ksmbd_conn *conn) argument 216 ksmbd_conn_set_need_reconnect(struct ksmbd_conn *conn) argument 221 ksmbd_conn_set_exiting(struct ksmbd_conn *conn) argument 226 ksmbd_conn_set_releasing(struct ksmbd_conn *conn) argument [all...] |
H A D | ksmbd_work.c | 63 ksmbd_release_id(&work->conn->async_ida, work->async_id);
|
H A D | ksmbd_work.h | 30 struct ksmbd_conn *conn; member in struct:ksmbd_work 87 /* List head at conn->requests */ 89 /* List head at conn->async_requests */
|
H A D | oplock.c | 33 struct ksmbd_conn *conn = work->conn; local 42 opinfo->conn = conn; 162 if (opinfo->conn == NULL || 166 atomic_inc(&opinfo->conn->r_count); 167 if (ksmbd_conn_releasing(opinfo->conn)) { 168 atomic_dec(&opinfo->conn->r_count); 182 struct ksmbd_conn *conn; local 187 conn 713 struct ksmbd_conn *conn = opinfo->conn; local 814 struct ksmbd_conn *conn = opinfo->conn; local 955 destroy_lease_table(struct ksmbd_conn *conn) argument 1357 struct ksmbd_conn *conn = work->conn; local 1775 lookup_lease_in_table(struct ksmbd_conn *conn, char *lease_key) argument 1822 smb2_check_durable_oplock(struct ksmbd_conn *conn, struct ksmbd_share_config *share, struct ksmbd_file *fp, struct lease_ctx_info *lctx, char *name) argument [all...] |
H A D | oplock.h | 63 struct ksmbd_conn *conn; member in struct:oplock_info 125 struct oplock_info *lookup_lease_in_table(struct ksmbd_conn *conn, 129 void destroy_lease_table(struct ksmbd_conn *conn); 133 int smb2_check_durable_oplock(struct ksmbd_conn *conn,
|
H A D | server.c | 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, argument 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 163 __handle_ksmbd_work(struct ksmbd_work *work, struct ksmbd_conn *conn) argument 263 struct ksmbd_conn *conn = work->conn; local 287 queue_ksmbd_work(struct ksmbd_conn *conn) argument 317 ksmbd_server_process_request(struct ksmbd_conn *conn) argument 322 ksmbd_server_terminate_conn(struct ksmbd_conn *conn) argument [all...] |
H A D | smb2misc.c | 301 static int smb2_validate_credit_charge(struct ksmbd_conn *conn, argument 344 } else if (credit_charge > conn->vals->max_credits) { 349 spin_lock(&conn->credits_lock); 350 if (credit_charge > conn->total_credits) { 352 credit_charge, conn->total_credits); 356 if ((u64)conn->outstanding_credits + credit_charge > conn->total_credits) { 358 credit_charge, conn->outstanding_credits); 361 conn->outstanding_credits += credit_charge; 363 spin_unlock(&conn [all...] |
H A D | smb2ops.c | 196 * @conn: connection instance 198 void init_smb2_1_server(struct ksmbd_conn *conn) argument 200 conn->vals = &smb21_server_values; 201 conn->ops = &smb2_0_server_ops; 202 conn->cmds = smb2_0_server_cmds; 203 conn->max_cmds = ARRAY_SIZE(smb2_0_server_cmds); 204 conn->signing_algorithm = SIGNING_ALG_HMAC_SHA256_LE; 207 conn->vals->capabilities |= SMB2_GLOBAL_CAP_LEASING; 213 * @conn: connection instance 215 void init_smb3_0_server(struct ksmbd_conn *conn) argument 245 init_smb3_02_server(struct ksmbd_conn *conn) argument 274 init_smb3_11_server(struct ksmbd_conn *conn) argument [all...] |
H A D | smb2pdu.c | 57 * @conn: connection instance 62 static inline bool check_session_id(struct ksmbd_conn *conn, u64 id) argument 69 sess = ksmbd_session_lookup_all(conn, id); 76 struct channel *lookup_chann_list(struct ksmbd_session *sess, struct ksmbd_conn *conn) argument 78 return xa_load(&sess->ksmbd_chann_list, (long)conn); 254 struct ksmbd_conn *conn = work->conn; local 273 WARN_ON(ksmbd_conn_good(conn)); 276 ksmbd_debug(SMB, "conn->dialect 0x%x\n", conn 315 struct ksmbd_conn *conn = work->conn; local 571 struct ksmbd_conn *conn = work->conn; local 640 struct ksmbd_conn *conn = work->conn; local 669 struct ksmbd_conn *conn = work->conn; local 814 assemble_neg_contexts(struct ksmbd_conn *conn, struct smb2_negotiate_rsp *rsp) argument 868 decode_preauth_ctxt(struct ksmbd_conn *conn, struct smb2_preauth_neg_context *pneg_ctxt, int ctxt_len) argument 887 decode_encrypt_ctxt(struct ksmbd_conn *conn, struct smb2_encryption_neg_context *pneg_ctxt, int ctxt_len) argument 932 smb3_encryption_negotiated(struct ksmbd_conn *conn) argument 945 decode_compress_ctxt(struct ksmbd_conn *conn, struct smb2_compression_capabilities_context *pneg_ctxt) argument 951 decode_sign_cap_ctxt(struct ksmbd_conn *conn, struct smb2_signing_capabilities *pneg_ctxt, int ctxt_len) argument 986 deassemble_neg_contexts(struct ksmbd_conn *conn, struct smb2_negotiate_req *req, unsigned int len_of_smb) argument 1077 struct ksmbd_conn *conn = work->conn; local 1254 alloc_preauth_hash(struct ksmbd_session *sess, struct ksmbd_conn *conn) argument 1270 struct ksmbd_conn *conn = work->conn; local 1299 decode_negotiation_token(struct ksmbd_conn *conn, struct negotiate_message *negblob, size_t sz) argument 1376 user_authblob(struct ksmbd_conn *conn, struct smb2_sess_setup_req *req) argument 1389 session_user(struct ksmbd_conn *conn, struct smb2_sess_setup_req *req) argument 1431 struct ksmbd_conn *conn = work->conn; local 1570 struct ksmbd_conn *conn = work->conn; local 1656 struct ksmbd_conn *conn = work->conn; local 1923 struct ksmbd_conn *conn = work->conn; local 2177 struct ksmbd_conn *conn = work->conn; local 2651 struct ksmbd_conn *conn = work->conn; local 2797 struct ksmbd_conn *conn = work->conn; local 3822 smb2_populate_readdir_entry(struct ksmbd_conn *conn, int info_level, struct ksmbd_dir_info *d_info, struct ksmbd_kstat *ksmbd_kstat) argument 4271 struct ksmbd_conn *conn = work->conn; local 4796 struct ksmbd_conn *conn = work->conn; local 4862 struct ksmbd_conn *conn = work->conn; local 4883 struct ksmbd_conn *conn = work->conn; local 5287 struct ksmbd_conn *conn = work->conn; local 5678 struct ksmbd_conn *conn = work->conn; local 6552 struct ksmbd_conn *conn = work->conn; local 6992 struct ksmbd_conn *conn = work->conn; local 7172 struct ksmbd_conn *conn; local 7645 fsctl_query_iface_info_ioctl(struct ksmbd_conn *conn, struct smb2_ioctl_rsp *rsp, unsigned int out_buf_len) argument 7753 fsctl_validate_negotiate_info(struct ksmbd_conn *conn, struct validate_negotiate_info_req *neg_req, struct validate_negotiate_info_rsp *neg_rsp, unsigned int in_buf_len) argument 7944 struct ksmbd_conn *conn = work->conn; local 8434 struct ksmbd_conn *conn = work->conn; local 8717 struct ksmbd_conn *conn = work->conn; local 8776 struct ksmbd_conn *conn = work->conn; local 8822 struct ksmbd_conn *conn = work->conn; local 8948 struct ksmbd_conn *conn = work->conn; local [all...] |
H A D | smb2pdu.h | 425 void init_smb2_1_server(struct ksmbd_conn *conn); 426 void init_smb3_0_server(struct ksmbd_conn *conn); 427 void init_smb3_02_server(struct ksmbd_conn *conn); 428 int init_smb3_11_server(struct ksmbd_conn *conn); 460 struct ksmbd_conn *conn); 467 bool smb3_encryption_negotiated(struct ksmbd_conn *conn);
|
H A D | smb_common.c | 146 work->conn->outstanding_credits++; 155 * @conn: connection instance 159 bool ksmbd_smb_request(struct ksmbd_conn *conn) argument 163 if (conn->request_buf[0] != 0) 166 proto = (__le32 *)smb2_get_msg(conn->request_buf); 344 unsigned int cmd = work->conn->ops->get_cmd_val(work); 400 static int init_smb1_server(struct ksmbd_conn *conn) argument 402 conn->ops = &smb1_server_ops; 403 conn->cmds = smb1_server_cmds; 404 conn 410 struct ksmbd_conn *conn = work->conn; local 434 struct ksmbd_conn *conn = work->conn; local 494 ksmbd_extract_shortname(struct ksmbd_conn *conn, const char *longname, char *shortname) argument 563 __smb2_negotiate(struct ksmbd_conn *conn) argument 588 struct ksmbd_conn *conn = work->conn; local [all...] |
H A D | smb_common.h | 409 int (*generate_signingkey)(struct ksmbd_session *sess, struct ksmbd_conn *conn); 410 int (*generate_encryptionkey)(struct ksmbd_conn *conn, struct ksmbd_session *sess); 426 bool ksmbd_smb_request(struct ksmbd_conn *conn); 443 int ksmbd_extract_shortname(struct ksmbd_conn *conn,
|
H A D | smbacl.c | 998 int smb_inherit_dacl(struct ksmbd_conn *conn, argument 1014 pntsd_size = ksmbd_vfs_get_sd_xattr(conn, idmap, 1191 ksmbd_vfs_set_sd_xattr(conn, idmap, path, pntsd, pntsd_size, false); 1215 int smb_check_perm_dacl(struct ksmbd_conn *conn, const struct path *path, argument 1234 pntsd_size = ksmbd_vfs_get_sd_xattr(conn, idmap, 1381 int set_info_sec(struct ksmbd_conn *conn, struct ksmbd_tree_connect *tcon, argument 1443 ksmbd_vfs_set_sd_xattr(conn, idmap, path, pntsd, ntsd_len,
|
H A D | smbacl.h | 204 int smb_inherit_dacl(struct ksmbd_conn *conn, const struct path *path, 206 int smb_check_perm_dacl(struct ksmbd_conn *conn, const struct path *path, 208 int set_info_sec(struct ksmbd_conn *conn, struct ksmbd_tree_connect *tcon,
|
H A D | transport_rdma.c | 363 struct ksmbd_conn *conn; local 400 conn = ksmbd_conn_alloc(); 401 if (!conn) 403 conn->transport = KSMBD_TRANS(t); 404 KSMBD_TRANS(t)->conn = conn; 456 ksmbd_conn_free(KSMBD_TRANS(t)->conn); 2061 KSMBD_TRANS(t)->conn, "ksmbd:r%u",
|
H A D | transport_tcp.c | 77 struct ksmbd_conn *conn; local 84 conn = ksmbd_conn_alloc(); 85 if (!conn) { 90 conn->transport = KSMBD_TRANS(t); 91 KSMBD_TRANS(t)->conn = conn; 102 ksmbd_conn_free(KSMBD_TRANS(t)->conn); 178 * whenever a new connection is requested, create a conn thread 196 csin = KSMBD_TCP_PEER_SOCKADDR(KSMBD_TRANS(t)->conn); 204 KSMBD_TRANS(t)->conn, 313 struct ksmbd_conn *conn = KSMBD_TRANS(t)->conn; local [all...] |
H A D | vfs.c | 387 if (work->conn->connection_type) { 498 if (work->conn->connection_type) { 1253 work->conn->um); 1458 int ksmbd_vfs_set_sd_xattr(struct ksmbd_conn *conn, argument 1488 rc = ksmbd_gen_sd_hash(conn, acl.sd_buf, acl.sd_size, acl.hash); 1507 rc = ksmbd_gen_sd_hash(conn, acl_ndr.data, acl_ndr.offset, 1534 int ksmbd_vfs_get_sd_xattr(struct ksmbd_conn *conn, argument 1569 rc = ksmbd_gen_sd_hash(conn, acl_ndr.data, acl_ndr.offset, cmp_hash);
|
H A D | vfs.h | 146 int ksmbd_vfs_set_sd_xattr(struct ksmbd_conn *conn, 151 int ksmbd_vfs_get_sd_xattr(struct ksmbd_conn *conn,
|
/linux-master/fs/smb/server/mgmt/ |
H A D | tree_connect.c | 19 ksmbd_tree_conn_connect(struct ksmbd_conn *conn, struct ksmbd_session *sess, argument 29 sc = ksmbd_share_config_get(conn->um, share_name); 45 peer_addr = KSMBD_TCP_PEER_SOCKADDR(conn); 64 new_sc = ksmbd_share_config_get(conn->um, share_name);
|
H A D | tree_connect.h | 53 ksmbd_tree_conn_connect(struct ksmbd_conn *conn, struct ksmbd_session *sess,
|
H A D | user_session.c | 172 static void ksmbd_expire_session(struct ksmbd_conn *conn) argument 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, argument 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 200 ksmbd_chann_del(struct ksmbd_conn *conn, struct ksmbd_session *sess) argument 212 ksmbd_sessions_deregister(struct ksmbd_conn *conn) argument 252 ksmbd_session_lookup(struct ksmbd_conn *conn, unsigned long long id) argument 278 ksmbd_session_lookup_all(struct ksmbd_conn *conn, unsigned long long id) argument 291 ksmbd_preauth_session_alloc(struct ksmbd_conn *conn, u64 sess_id) argument 308 destroy_previous_session(struct ksmbd_conn *conn, struct ksmbd_user *user, u64 id) argument 340 ksmbd_preauth_session_lookup(struct ksmbd_conn *conn, unsigned long long id) argument [all...] |
H A D | user_session.h | 23 struct ksmbd_conn *conn; member in struct:channel 86 struct ksmbd_session *ksmbd_session_lookup(struct ksmbd_conn *conn, 88 int ksmbd_session_register(struct ksmbd_conn *conn, 90 void ksmbd_sessions_deregister(struct ksmbd_conn *conn); 92 struct ksmbd_session *ksmbd_session_lookup_all(struct ksmbd_conn *conn, 94 void destroy_previous_session(struct ksmbd_conn *conn, 96 struct preauth_session *ksmbd_preauth_session_alloc(struct ksmbd_conn *conn, 98 struct preauth_session *ksmbd_preauth_session_lookup(struct ksmbd_conn *conn,
|