From ef88362a67b329923da062fe4a82b6a9ff9764f0 Mon Sep 17 00:00:00 2001 From: "Alexander.Zarochentev" Date: Fri, 19 Mar 2010 11:19:43 -0700 Subject: [PATCH] b=22070 revert incompatible protocol change i=nathan.rutman i=andreas.dilger --- lustre/include/lustre_lib.h | 9 ++++---- lustre/ldlm/ldlm_lib.c | 47 ------------------------------------------ lustre/mdc/mdc_request.c | 8 ++++---- lustre/mdt/mdt_handler.c | 11 +++++----- lustre/ptlrpc/pack_generic.c | 49 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 64 insertions(+), 60 deletions(-) diff --git a/lustre/include/lustre_lib.h b/lustre/include/lustre_lib.h index 623932c..6be3c11 100644 --- a/lustre/include/lustre_lib.h +++ b/lustre/include/lustre_lib.h @@ -76,10 +76,11 @@ void target_destroy_export(struct obd_export *exp); int target_pack_pool_reply(struct ptlrpc_request *req); int target_handle_ping(struct ptlrpc_request *req); void target_committed_to_req(struct ptlrpc_request *req); -int target_set_info_rpc(struct obd_import *imp, int opcode, - obd_count keylen, void *key, - obd_count vallen, void *val, - struct ptlrpc_request_set *set); +int do_set_info_async(struct obd_import *imp, + int opcode, int version, + obd_count keylen, void *key, + obd_count vallen, void *val, + struct ptlrpc_request_set *set); /* quotacheck callback, dqacq/dqrel callback handler */ int target_handle_qc_callback(struct ptlrpc_request *req); diff --git a/lustre/ldlm/ldlm_lib.c b/lustre/ldlm/ldlm_lib.c index 4eb627a..0e0ccab 100644 --- a/lustre/ldlm/ldlm_lib.c +++ b/lustre/ldlm/ldlm_lib.c @@ -2359,53 +2359,6 @@ out: } #endif /* HAVE_QUOTA_SUPPORT */ -/* Send a remote set_info_async. - * This may go from client to server or server to client - */ -int target_set_info_rpc(struct obd_import *imp, int opcode, - obd_count keylen, void *key, - obd_count vallen, void *val, - struct ptlrpc_request_set *set) -{ - struct ptlrpc_request *req; - char *tmp; - int rc; - ENTRY; - - req = ptlrpc_request_alloc(imp, &RQF_OBD_SET_INFO); - if (req == NULL) - RETURN(-ENOMEM); - - req_capsule_set_size(&req->rq_pill, &RMF_SETINFO_KEY, - RCL_CLIENT, keylen); - req_capsule_set_size(&req->rq_pill, &RMF_SETINFO_VAL, - RCL_CLIENT, vallen); - rc = ptlrpc_request_pack(req, LUSTRE_OBD_VERSION, opcode); - if (rc) { - ptlrpc_request_free(req); - RETURN(rc); - } - - tmp = req_capsule_client_get(&req->rq_pill, &RMF_SETINFO_KEY); - memcpy(tmp, key, keylen); - tmp = req_capsule_client_get(&req->rq_pill, &RMF_SETINFO_VAL); - memcpy(tmp, val, vallen); - - ptlrpc_request_set_replen(req); - - if (set) { - ptlrpc_set_add_req(set, req); - ptlrpc_check_set(NULL, set); - } else { - rc = ptlrpc_queue_wait(req); - ptlrpc_req_finished(req); - } - - RETURN(rc); -} -EXPORT_SYMBOL(target_set_info_rpc); - - ldlm_mode_t lck_compat_array[] = { [LCK_EX] LCK_COMPAT_EX, [LCK_PW] LCK_COMPAT_PW, diff --git a/lustre/mdc/mdc_request.c b/lustre/mdc/mdc_request.c index aaf785b..f84d849 100644 --- a/lustre/mdc/mdc_request.c +++ b/lustre/mdc/mdc_request.c @@ -1603,8 +1603,8 @@ int mdc_set_info_async(struct obd_export *exp, } cfs_spin_unlock(&imp->imp_lock); - rc = target_set_info_rpc(imp, MDS_SET_INFO, - keylen, key, vallen, val, set); + rc = do_set_info_async(imp, MDS_SET_INFO, LUSTRE_MDS_VERSION, + keylen, key, vallen, val, set); RETURN(rc); } if (KEY_IS(KEY_SPTLRPC_CONF)) { @@ -1625,8 +1625,8 @@ int mdc_set_info_async(struct obd_export *exp, RETURN(0); } if (KEY_IS(KEY_CHANGELOG_CLEAR)) { - rc = target_set_info_rpc(imp, MDS_SET_INFO, - keylen, key, vallen, val, set); + rc = do_set_info_async(imp, MDS_SET_INFO, LUSTRE_MDS_VERSION, + keylen, key, vallen, val, set); RETURN(rc); } if (KEY_IS(KEY_HSM_COPYTOOL_SEND)) { diff --git a/lustre/mdt/mdt_handler.c b/lustre/mdt/mdt_handler.c index 2e3f2c1..a38edde 100644 --- a/lustre/mdt/mdt_handler.c +++ b/lustre/mdt/mdt_handler.c @@ -2842,7 +2842,6 @@ static int mdt_msg_check_version(struct lustre_msg *msg) switch (lustre_msg_get_opc(msg)) { case MDS_CONNECT: case MDS_DISCONNECT: - case MDS_SET_INFO: case OBD_PING: case SEC_CTX_INIT: case SEC_CTX_INIT_CONT: @@ -2868,6 +2867,7 @@ static int mdt_msg_check_version(struct lustre_msg *msg) case MDS_SYNC: case MDS_GETXATTR: case MDS_SETXATTR: + case MDS_SET_INFO: case MDS_GET_INFO: case MDS_QUOTACHECK: case MDS_QUOTACTL: @@ -5606,10 +5606,11 @@ int mdt_hsm_copytool_send(struct obd_export *exp) /* Uses the ldlm reverse import; this rpc will be seen by the ldlm_callback_handler */ - rc = target_set_info_rpc(exp->exp_imp_reverse, LDLM_SET_INFO, - sizeof(KEY_HSM_COPYTOOL_SEND), - KEY_HSM_COPYTOOL_SEND, - len, lh, NULL); + rc = do_set_info_async(exp->exp_imp_reverse, + LDLM_SET_INFO, LUSTRE_OBD_VERSION, + sizeof(KEY_HSM_COPYTOOL_SEND), + KEY_HSM_COPYTOOL_SEND, + len, lh, NULL); OBD_FREE(lh, len); diff --git a/lustre/ptlrpc/pack_generic.c b/lustre/ptlrpc/pack_generic.c index 678246a..5149f1f 100644 --- a/lustre/ptlrpc/pack_generic.c +++ b/lustre/ptlrpc/pack_generic.c @@ -1457,6 +1457,55 @@ void ptlrpc_req_set_repsize(struct ptlrpc_request *req, int count, __u32 *lens) req->rq_reqmsg->lm_repsize = req->rq_replen; } +/** + * Send a remote set_info_async. + * + * This may go from client to server or server to client. + */ +int do_set_info_async(struct obd_import *imp, + int opcode, int version, + obd_count keylen, void *key, + obd_count vallen, void *val, + struct ptlrpc_request_set *set) +{ + struct ptlrpc_request *req; + char *tmp; + int rc; + ENTRY; + + req = ptlrpc_request_alloc(imp, &RQF_OBD_SET_INFO); + if (req == NULL) + RETURN(-ENOMEM); + + req_capsule_set_size(&req->rq_pill, &RMF_SETINFO_KEY, + RCL_CLIENT, keylen); + req_capsule_set_size(&req->rq_pill, &RMF_SETINFO_VAL, + RCL_CLIENT, vallen); + rc = ptlrpc_request_pack(req, version, opcode); + if (rc) { + ptlrpc_request_free(req); + RETURN(rc); + } + + tmp = req_capsule_client_get(&req->rq_pill, &RMF_SETINFO_KEY); + memcpy(tmp, key, keylen); + tmp = req_capsule_client_get(&req->rq_pill, &RMF_SETINFO_VAL); + memcpy(tmp, val, vallen); + + ptlrpc_request_set_replen(req); + + if (set) { + ptlrpc_set_add_req(set, req); + ptlrpc_check_set(NULL, set); + } else { + rc = ptlrpc_queue_wait(req); + ptlrpc_req_finished(req); + } + + RETURN(rc); +} +EXPORT_SYMBOL(do_set_info_async); + /* byte flipping routines for all wire types declared in * lustre_idl.h implemented here. */ -- 1.8.3.1