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:
parent
2474d74aae
commit
65f1c7816d
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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" },
|
||||||
|
|
Loading…
Reference in New Issue