staging/lustre/server: use unified request handler for MGS

- Unify request handler. It finds target for particular request and
  calls appropriate handler for it. Generic handlers are moved to
  the unified target code. The tgt_session_info is introduced to
  store all request-related data and passed to all handlers.
- Pack reply in llog server functions early and use err_serious()
- remove obsoleted llog_origin_handle_cancel(), it is not used
  anymore
- remove push_ctxt/pop_ctxt from llog server function, it is based
  on OSD now.

Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-2145
Lustre-change: http://review.whamcloud.com/4826
Signed-off-by: Mikhail Pershin <mike.pershin@intel.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: James Simmons <uja.ornl@gmail.com>
Signed-off-by: Peng Tao <bergwolf@gmail.com>
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Mikhail Pershin 2013-11-26 10:04:55 +08:00 committed by Greg Kroah-Hartman
parent 2474d74aae
commit 65f1c7816d
4 changed files with 17 additions and 3 deletions

View File

@ -245,6 +245,8 @@ extern struct req_format RQF_LLOG_ORIGIN_HANDLE_PREV_BLOCK;
extern struct req_format RQF_LLOG_ORIGIN_HANDLE_READ_HEADER; extern struct req_format RQF_LLOG_ORIGIN_HANDLE_READ_HEADER;
extern struct req_format RQF_LLOG_ORIGIN_CONNECT; extern struct req_format RQF_LLOG_ORIGIN_CONNECT;
extern struct req_format RQF_CONNECT;
extern struct req_msg_field RMF_GENERIC_DATA; extern struct req_msg_field RMF_GENERIC_DATA;
extern struct req_msg_field RMF_PTLRPC_BODY; extern struct req_msg_field RMF_PTLRPC_BODY;
extern struct req_msg_field RMF_MDT_BODY; extern struct req_msg_field RMF_MDT_BODY;

View File

@ -416,6 +416,13 @@ int obd_alloc_fail(const void *ptr, const char *name, const char *type,
#define OBD_FAIL_MGC_PAUSE_PROCESS_LOG 0x903 #define OBD_FAIL_MGC_PAUSE_PROCESS_LOG 0x903
#define OBD_FAIL_MGS_PAUSE_REQ 0x904 #define OBD_FAIL_MGS_PAUSE_REQ 0x904
#define OBD_FAIL_MGS_PAUSE_TARGET_REG 0x905 #define OBD_FAIL_MGS_PAUSE_TARGET_REG 0x905
#define OBD_FAIL_MGS_CONNECT_NET 0x906
#define OBD_FAIL_MGS_DISCONNECT_NET 0x907
#define OBD_FAIL_MGS_SET_INFO_NET 0x908
#define OBD_FAIL_MGS_EXCEPTION_NET 0x909
#define OBD_FAIL_MGS_TARGET_REG_NET 0x90a
#define OBD_FAIL_MGS_TARGET_DEL_NET 0x90b
#define OBD_FAIL_MGS_CONFIG_READ_NET 0x90c
#define OBD_FAIL_QUOTA_DQACQ_NET 0xA01 #define OBD_FAIL_QUOTA_DQACQ_NET 0xA01
#define OBD_FAIL_QUOTA_EDQUOT 0xA02 #define OBD_FAIL_QUOTA_EDQUOT 0xA02

View File

@ -738,7 +738,8 @@ static struct req_format *req_formats[] = {
&RQF_LLOG_ORIGIN_HANDLE_NEXT_BLOCK, &RQF_LLOG_ORIGIN_HANDLE_NEXT_BLOCK,
&RQF_LLOG_ORIGIN_HANDLE_PREV_BLOCK, &RQF_LLOG_ORIGIN_HANDLE_PREV_BLOCK,
&RQF_LLOG_ORIGIN_HANDLE_READ_HEADER, &RQF_LLOG_ORIGIN_HANDLE_READ_HEADER,
&RQF_LLOG_ORIGIN_CONNECT &RQF_LLOG_ORIGIN_CONNECT,
&RQF_CONNECT,
}; };
struct req_msg_field { struct req_msg_field {
@ -1504,6 +1505,10 @@ struct req_format RQF_LLOG_ORIGIN_CONNECT =
DEFINE_REQ_FMT0("LLOG_ORIGIN_CONNECT", llogd_conn_body_only, empty); DEFINE_REQ_FMT0("LLOG_ORIGIN_CONNECT", llogd_conn_body_only, empty);
EXPORT_SYMBOL(RQF_LLOG_ORIGIN_CONNECT); EXPORT_SYMBOL(RQF_LLOG_ORIGIN_CONNECT);
struct req_format RQF_CONNECT =
DEFINE_REQ_FMT0("CONNECT", obd_connect_client, obd_connect_server);
EXPORT_SYMBOL(RQF_CONNECT);
struct req_format RQF_OST_CONNECT = struct req_format RQF_OST_CONNECT =
DEFINE_REQ_FMT0("OST_CONNECT", DEFINE_REQ_FMT0("OST_CONNECT",
obd_connect_client, obd_connect_server); obd_connect_client, obd_connect_server);

View File

@ -114,10 +114,10 @@ struct ll_rpc_opcode {
{ MGS_SET_INFO, "mgs_set_info" }, { MGS_SET_INFO, "mgs_set_info" },
{ MGS_CONFIG_READ, "mgs_config_read" }, { MGS_CONFIG_READ, "mgs_config_read" },
{ OBD_PING, "obd_ping" }, { OBD_PING, "obd_ping" },
{ OBD_LOG_CANCEL, "llog_origin_handle_cancel" }, { OBD_LOG_CANCEL, "llog_cancel" },
{ OBD_QC_CALLBACK, "obd_quota_callback" }, { OBD_QC_CALLBACK, "obd_quota_callback" },
{ OBD_IDX_READ, "dt_index_read" }, { OBD_IDX_READ, "dt_index_read" },
{ LLOG_ORIGIN_HANDLE_CREATE, "llog_origin_handle_create" }, { LLOG_ORIGIN_HANDLE_CREATE, "llog_origin_handle_open" },
{ LLOG_ORIGIN_HANDLE_NEXT_BLOCK, "llog_origin_handle_next_block" }, { LLOG_ORIGIN_HANDLE_NEXT_BLOCK, "llog_origin_handle_next_block" },
{ LLOG_ORIGIN_HANDLE_READ_HEADER,"llog_origin_handle_read_header" }, { LLOG_ORIGIN_HANDLE_READ_HEADER,"llog_origin_handle_read_header" },
{ LLOG_ORIGIN_HANDLE_WRITE_REC, "llog_origin_handle_write_rec" }, { LLOG_ORIGIN_HANDLE_WRITE_REC, "llog_origin_handle_write_rec" },