smb2_read_rdma(9)
π smb2_read_rdma β the Kernel API Manual, bestie edition π
okay so this is a page from the Kernel API Manual (the 9 section, kernel internals, iykyk) and it's literally all about smb2_read_rdma. Buckle up π
β¨ NAME β¨
smb2_read_rdma β transfers READ data to client RDMA buffers π¦
Like, the actual vibe: you got READ data, the client has RDMA buffers, this function does the handoff. No cap.
πΈ SYNOPSIS πΈ
ssize_t smb2_read_rdma (struct ksmbd_work *work , struct smb2_read_req
*req , void *data_buf , size_t length );
Returns an ssize_t β remember that, it comes back later π
π ARGUMENTS π
workβ the request work item. Your main character struct, fr.reqβ the READ request, and it's the one holding the client descriptors. lowkey important.data_bufβ the data to transfer. That's the payload, bestie πlengthβ the data length. Yes it's just the length. She's straightforward, we stan.
π₯ RETURN π₯
The transferred length on success π β otherwise a negative errno π (so like, if you see a negative number, that's not a length, that's a sad little error code. vibe check failed, basically π).
π SEE ALSO π
okay girl, this list is LONG, so let's go. These all live in the Kernel file ./fs/smb/server/smb2pdu.c, and every single one of them is iconic in her own way:
smb2_get_ksmbd_tcon(9)smb2_set_err_rsp(9)is_smb2_neg_cmd(9)is_smb2_rsp(9)get_smb2_cmd_val(9)set_smb2_rsp_status(9)init_smb2_neg_rsp(9)smb2_set_rsp_credits(9)init_chained_smb2_rsp(9)is_chained_smb2_message(9)init_smb2_rsp_hdr(9)smb2_allocate_rsp_buf(9)smb2_check_user_session(9)smb2_get_name(9)smb2_get_dos_mode(9)build_rdma_ctx(9)smb3_encryption_negotiated(9)decode_rdma_ctx(9)smb2_handle_negotiate(9)smb2_tree_connect(9)smb2_create_open_flags(9)smb2_tree_disconnect(9)smb2_session_logoff(9)create_smb2_pipe(9)smb2_set_ea(9)smb2_open(9)smb2_populate_readdir_entry(9)buffer_check_err(9)smb2_get_ea(9)smb2_query_info(9)smb2_close_pipe(9)smb2_close(9)smb2_echo(9)smb2_set_info_file(9)smb2_set_info(9)smb2_read_pipe(9)smb2_set_rdma_key(9)smb2_prep_rdma_read(9)smb2_current_req_len(9)check_rdma_desc(9)smb2_parse_rdma_write_transform(9)smb2_read(9)smb2_write_pipe(9)smb2_write_rdma(9)smb2_write(9)smb2_flush(9)smb2_cancel(9)smb2_lock(9)smb2_ioctl(9)smb20_oplock_break_ack(9)smb21_lease_break_ack(9)smb2_oplock_break(9)smb2_notify(9)smb2_is_sign_req(9)smb2_check_sign_req(9)smb2_get_sign_rsp_iov(9)smb2_set_sign_rsp(9)smb3_check_sign_req(9)smb3_set_sign_rsp(9)
and finally, saving the best for last:
That's sixty-something functions and yes, I typed every single one, because we don't skip entries in this house β¨
okay that's the whole page, bestie β go forth and transfer that READ data π
sign-off time π this one's from the Kernel API Manual, source dir ./fs/smb/server, dated October 2026 β and it's smb2_read_rdma(9) all the way through, periodt π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms