smb2_prep_rdma_read(9)
π smb2_prep_rdma_read(9) β Kernel API Manual, section 9 π
okay so bestie, gather round, because today we're looking at smb2_prep_rdma_read β a little kernel function from the Kernel API Manual, section 9, and honestly? it's giving "small but mighty" β¨
πΈ NAME πΈ
smb2_prep_rdma_read β transform an RDMA READ payload π«
π¦ SYNOPSIS π¦
int smb2_prep_rdma_read (struct ksmbd_work *work , struct smb2_read_req
*req , struct smb2_read_rsp *rsp , void *data , unsigned int datalen );
like, that's the whole signature, no cap π«Ά
π ARGUMENTS π
workβ the request work item. your main character struct for this call πreqβ the READ request, and it's the one controlling encryption or signing, so it's lowkey the boss hererspβ the READ response, and this is where the transform metadata goes to live β¨dataβ the actual data that will be transferred through RDMA. the payload bestie herself πdatalenβ the data length, obviously, we love a straightforward queen π
π DESCRIPTION π
So what does it actually do? Two things, and both of them are in place:
- It encrypts the payload in place π₯
- It encodes the detached crypto metadata into the response buffer π§
that's it, that's the vibe. no extra steps, no drama, just crypto business handled π
β RETURN β
The function returns the metadata length π
But also, watch out:
- returns zero when no transform applies π
- or a negative errno if something went wrong π
ngl bestie, always check that return value. zero is a valid answer here, and negative means trouble π
π SEE ALSO π
okay this list is LONG and honestly kind of iconic β everything from the same neighbourhood, Kernel file ./fs/smb/server/smb2pdu.c π:
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_current_req_len(9)check_rdma_desc(9)smb2_parse_rdma_write_transform(9)smb2_read_rdma(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)smb3_preauth_hash_rsp(9)
like, the whole friend group showed up ππ
and that's the page bestie!! π¦ this one came out of ./fs/smb/server, dated October 2026, and it's filed under smb2_prep_rdma_read(9) β go forth and transform those payloads, you absolute icon πβ¨
π¦ 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