X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre_net.h;h=a5e0db18870d525c3b61fb91ad1c1c9981dc82a7;hb=c04d325bd0f5665d9479e4684c9f587cfcfcb541;hp=ca69a556c1de826a0cd5591ff67c7e97b323235b;hpb=3192e52a89946f12fd36d28a686c169d01d36e64;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_net.h b/lustre/include/lustre_net.h index ca69a55..a5e0db1 100644 --- a/lustre/include/lustre_net.h +++ b/lustre/include/lustre_net.h @@ -42,6 +42,7 @@ #include #include #include +#include /* MD flags we _always_ use */ #define PTLRPC_MD_OPTIONS 0 @@ -418,6 +419,9 @@ struct ptlrpc_request { struct ptlrpc_request_pool *rq_pool; /* Pool if request from preallocated list */ struct lu_context rq_session; + + /* request format */ + struct req_capsule rq_pill; }; static inline void ptlrpc_close_replay_seq(struct ptlrpc_request *req) @@ -771,14 +775,27 @@ void ptlrpc_free_rq_pool(struct ptlrpc_request_pool *pool); void ptlrpc_add_rqs_to_pool(struct ptlrpc_request_pool *pool, int num_rq); struct ptlrpc_request_pool *ptlrpc_init_rq_pool(int, int, void (*populate_pool)(struct ptlrpc_request_pool *, int)); +struct ptlrpc_request *ptlrpc_request_alloc(struct obd_import *imp, + const struct req_format *format); +struct ptlrpc_request *ptlrpc_request_alloc_pool(struct obd_import *imp, + struct ptlrpc_request_pool *, + const struct req_format *format); +void ptlrpc_request_free(struct ptlrpc_request *request); +int ptlrpc_request_pack(struct ptlrpc_request *request, + __u32 version, int opcode); +struct ptlrpc_request *ptlrpc_request_alloc_pack(struct obd_import *imp, + const struct req_format *format, + __u32 version, int opcode); +int ptlrpc_request_bufs_pack(struct ptlrpc_request *request, + __u32 version, int opcode, char **bufs, + struct ptlrpc_cli_ctx *ctx); struct ptlrpc_request *ptlrpc_prep_req(struct obd_import *imp, __u32 version, int opcode, int count, int *lengths, char **bufs); struct ptlrpc_request *ptlrpc_prep_req_pool(struct obd_import *imp, __u32 version, int opcode, int count, int *lengths, char **bufs, - struct ptlrpc_request_pool *pool, - struct ptlrpc_cli_ctx *ctx); + struct ptlrpc_request_pool *pool); void ptlrpc_free_req(struct ptlrpc_request *request); void ptlrpc_req_finished(struct ptlrpc_request *request); void ptlrpc_req_finished_with_imp_lock(struct ptlrpc_request *request); @@ -853,6 +870,7 @@ int ptlrpc_disconnect_import(struct obd_import *imp, int noclose); int ptlrpc_import_recovery_state_machine(struct obd_import *imp); /* ptlrpc/pack_generic.c */ +int ptlrpc_reconnect_import(struct obd_import *imp); int lustre_msg_swabbed(struct lustre_msg *msg); int lustre_msg_check_version(struct lustre_msg *msg, __u32 version); void lustre_init_msg_v2(struct lustre_msg_v2 *msg, int count, int *lens, @@ -866,6 +884,7 @@ int lustre_pack_reply_v2(struct ptlrpc_request *req, int count, int lustre_shrink_msg(struct lustre_msg *msg, int segment, unsigned int newlen, int move_data); void lustre_free_reply_state(struct ptlrpc_reply_state *rs); +int lustre_msg_hdr_size(__u32 magic, int count); int lustre_msg_size(__u32 magic, int count, int *lengths); int lustre_msg_size_v2(int count, int *lengths); int lustre_packed_msg_size(struct lustre_msg *msg); @@ -912,6 +931,8 @@ void lustre_msg_set_last_committed(struct lustre_msg *msg,__u64 last_committed); void lustre_msg_set_transno(struct lustre_msg *msg, __u64 transno); void lustre_msg_set_status(struct lustre_msg *msg, __u32 status); void lustre_msg_set_conn_cnt(struct lustre_msg *msg, __u32 conn_cnt); +void ptlrpc_req_set_repsize(struct ptlrpc_request *req, int count, int *sizes); +void ptlrpc_request_set_replen(struct ptlrpc_request *req); static inline void lustre_shrink_reply(struct ptlrpc_request *req, int segment, @@ -958,14 +979,6 @@ static inline int ptlrpc_req_get_repsize(struct ptlrpc_request *req) } } -static inline void -ptlrpc_req_set_repsize(struct ptlrpc_request *req, int count, int *lens) -{ - req->rq_replen = lustre_msg_size(req->rq_reqmsg->lm_magic, count, lens); - if (req->rq_reqmsg->lm_magic == LUSTRE_MSG_MAGIC_V2) - req->rq_reqmsg->lm_repsize = req->rq_replen; -} - /* ldlm/ldlm_lib.c */ int client_obd_setup(struct obd_device *obddev, struct lustre_cfg *lcfg); int client_obd_cleanup(struct obd_device *obddev);