/* one of these for every pending CIFS request at the connection */ struct ksmbd_work { /* Server corresponding to this mid */ struct ksmbd_conn *conn; struct ksmbd_session *sess; struct ksmbd_tree_connect *tcon;
/* Pointer to received SMB header */ void *request_buf; /* Response buffer */ void *response_buf;
struct list_head aux_read_list;
struct kvec *iov; int iov_alloc_cnt; int iov_cnt; int iov_idx;
/* Next cmd hdr in compound req buf*/ int next_smb2_rcv_hdr_off; /* Next cmd hdr in compound rsp buf*/ int next_smb2_rsp_hdr_off; /* Current cmd hdr in compound rsp buf*/ int curr_smb2_rsp_hdr_off;
/* * Current Local FID assigned compound response if SMB2 CREATE * command is present in compound request
*/
u64 compound_fid;
u64 compound_pfid;
u64 compound_sid;
conststruct cred *saved_cred;
/* Number of granted credits */ unsignedint credits_granted;
unsignedchar state; /* No response for cancelled request */ bool send_no_response:1; /* Request is encrypted */ bool encrypted:1; /* Is this SYNC or ASYNC ksmbd_work */ bool asynchronous:1; bool need_invalidate_rkey:1;
unsignedint remote_key; /* cancel works */ int async_id; void **cancel_argv; void (*cancel_fn)(void **argv);
struct work_struct work; /* List head at conn->requests */ struct list_head request_entry; /* List head at conn->async_requests */ struct list_head async_request_entry; struct list_head fp_entry;
};
/** * ksmbd_resp_buf_next - Get next buffer on compound response. * @work: smb work containing response buffer
*/ staticinlinevoid *ksmbd_resp_buf_next(struct ksmbd_work *work)
{ return work->response_buf + work->next_smb2_rsp_hdr_off + 4;
}
/** * ksmbd_resp_buf_curr - Get current buffer on compound response. * @work: smb work containing response buffer
*/ staticinlinevoid *ksmbd_resp_buf_curr(struct ksmbd_work *work)
{ return work->response_buf + work->curr_smb2_rsp_hdr_off + 4;
}
/** * ksmbd_req_buf_next - Get next buffer on compound request. * @work: smb work containing response buffer
*/ staticinlinevoid *ksmbd_req_buf_next(struct ksmbd_work *work)
{ return work->request_buf + work->next_smb2_rcv_hdr_off + 4;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.