Whamcloud - gitweb
LU-4961 lustre: remove liblustre.h and obd.h from userspace
[fs/lustre-release.git] / lustre / ptlrpc / layout.c
index 5b3b648..af36c72 100644 (file)
 #include <lustre/lustre_idl.h>
 /* obd2cli_tgt() (required by DEBUG_REQ()) */
 #include <obd.h>
+#include <lustre_debug.h>
+#include <lustre_update.h>
+#endif /* !__REQ_LAYOUT_USER__ */
 
-/* __REQ_LAYOUT_USER__ */
-#endif
 /* struct ptlrpc_request, lustre_msg* */
 #include <lustre_req_layout.h>
-#include <lustre_update.h>
 #include <lustre_acl.h>
-#include <lustre_debug.h>
 
 /*
  * RQFs (see below) refer to two struct req_msg_field arrays describing the
@@ -184,6 +183,16 @@ static const struct req_msg_field *fld_query_server[] = {
         &RMF_FLD_MDFLD
 };
 
+static const struct req_msg_field *fld_read_client[] = {
+       &RMF_PTLRPC_BODY,
+       &RMF_FLD_MDFLD
+};
+
+static const struct req_msg_field *fld_read_server[] = {
+       &RMF_PTLRPC_BODY,
+       &RMF_GENERIC_DATA
+};
+
 static const struct req_msg_field *mds_getattr_name_client[] = {
         &RMF_PTLRPC_BODY,
         &RMF_MDT_BODY,
@@ -520,12 +529,12 @@ static const struct req_msg_field *mds_setattr_server[] = {
 
 static const struct req_msg_field *mds_update_client[] = {
        &RMF_PTLRPC_BODY,
-       &RMF_UPDATE,
+       &RMF_OUT_UPDATE,
 };
 
 static const struct req_msg_field *mds_update_server[] = {
        &RMF_PTLRPC_BODY,
-       &RMF_UPDATE_REPLY,
+       &RMF_OUT_UPDATE_REPLY,
 };
 
 static const struct req_msg_field *llog_origin_handle_create_client[] = {
@@ -684,6 +693,16 @@ static const struct req_msg_field *mdt_hsm_request[] = {
        &RMF_GENERIC_DATA,
 };
 
+static const struct req_msg_field *obd_lfsck_request[] = {
+       &RMF_PTLRPC_BODY,
+       &RMF_LFSCK_REQUEST,
+};
+
+static const struct req_msg_field *obd_lfsck_reply[] = {
+       &RMF_PTLRPC_BODY,
+       &RMF_LFSCK_REPLY,
+};
+
 static struct req_format *req_formats[] = {
         &RQF_OBD_PING,
         &RQF_OBD_SET_INFO,
@@ -694,6 +713,7 @@ static struct req_format *req_formats[] = {
         &RQF_MGS_CONFIG_READ,
         &RQF_SEQ_QUERY,
         &RQF_FLD_QUERY,
+       &RQF_FLD_READ,
         &RQF_MDS_CONNECT,
         &RQF_MDS_DISCONNECT,
         &RQF_MDS_GET_INFO,
@@ -732,7 +752,7 @@ static struct req_format *req_formats[] = {
        &RQF_MDS_HSM_ACTION,
        &RQF_MDS_HSM_REQUEST,
        &RQF_MDS_SWAP_LAYOUTS,
-       &RQF_UPDATE_OBJ,
+       &RQF_OUT_UPDATE,
        &RQF_QC_CALLBACK,
         &RQF_OST_CONNECT,
         &RQF_OST_DISCONNECT,
@@ -780,6 +800,8 @@ static struct req_format *req_formats[] = {
         &RQF_LLOG_ORIGIN_HANDLE_READ_HEADER,
        &RQF_LLOG_ORIGIN_CONNECT,
        &RQF_CONNECT,
+       &RQF_LFSCK_NOTIFY,
+       &RQF_LFSCK_QUERY,
 };
 
 struct req_msg_field {
@@ -1167,19 +1189,30 @@ struct req_msg_field RMF_MDS_HSM_REQUEST =
                    lustre_swab_hsm_request, NULL);
 EXPORT_SYMBOL(RMF_MDS_HSM_REQUEST);
 
-struct req_msg_field RMF_UPDATE = DEFINE_MSGF("update", 0, -1,
-                                             lustre_swab_update_buf, NULL);
-EXPORT_SYMBOL(RMF_UPDATE);
+struct req_msg_field RMF_OUT_UPDATE = DEFINE_MSGF("object_update", 0, -1,
+                               lustre_swab_object_update_request, NULL);
+EXPORT_SYMBOL(RMF_OUT_UPDATE);
 
-struct req_msg_field RMF_UPDATE_REPLY = DEFINE_MSGF("update_reply", 0, -1,
-                                               lustre_swab_update_reply_buf,
-                                                   NULL);
-EXPORT_SYMBOL(RMF_UPDATE_REPLY);
+struct req_msg_field RMF_OUT_UPDATE_REPLY =
+                       DEFINE_MSGF("object_update_reply", 0, -1,
+                                   lustre_swab_object_update_reply, NULL);
+EXPORT_SYMBOL(RMF_OUT_UPDATE_REPLY);
 
 struct req_msg_field RMF_SWAP_LAYOUTS =
        DEFINE_MSGF("swap_layouts", 0, sizeof(struct  mdc_swap_layouts),
                    lustre_swab_swap_layouts, NULL);
 EXPORT_SYMBOL(RMF_SWAP_LAYOUTS);
+
+struct req_msg_field RMF_LFSCK_REQUEST =
+       DEFINE_MSGF("lfsck_request", 0, sizeof(struct lfsck_request),
+                   lustre_swab_lfsck_request, NULL);
+EXPORT_SYMBOL(RMF_LFSCK_REQUEST);
+
+struct req_msg_field RMF_LFSCK_REPLY =
+       DEFINE_MSGF("lfsck_reply", 0, sizeof(struct lfsck_reply),
+                   lustre_swab_lfsck_reply, NULL);
+EXPORT_SYMBOL(RMF_LFSCK_REPLY);
+
 /*
  * Request formats.
  */
@@ -1251,6 +1284,10 @@ struct req_format RQF_FLD_QUERY =
         DEFINE_REQ_FMT0("FLD_QUERY", fld_query_client, fld_query_server);
 EXPORT_SYMBOL(RQF_FLD_QUERY);
 
+struct req_format RQF_FLD_READ =
+       DEFINE_REQ_FMT0("FLD_READ", fld_read_client, fld_read_server);
+EXPORT_SYMBOL(RQF_FLD_READ);
+
 struct req_format RQF_LOG_CANCEL =
         DEFINE_REQ_FMT0("OBD_LOG_CANCEL", log_cancel_client, empty);
 EXPORT_SYMBOL(RQF_LOG_CANCEL);
@@ -1379,10 +1416,10 @@ struct req_format RQF_MDS_GET_INFO =
                         mds_getinfo_server);
 EXPORT_SYMBOL(RQF_MDS_GET_INFO);
 
-struct req_format RQF_UPDATE_OBJ =
-       DEFINE_REQ_FMT0("OBJECT_UPDATE_OBJ", mds_update_client,
+struct req_format RQF_OUT_UPDATE =
+       DEFINE_REQ_FMT0("OUT_UPDATE_OBJ", mds_update_client,
                        mds_update_server);
-EXPORT_SYMBOL(RQF_UPDATE_OBJ);
+EXPORT_SYMBOL(RQF_OUT_UPDATE);
 
 struct req_format RQF_LDLM_ENQUEUE =
         DEFINE_REQ_FMT0("LDLM_ENQUEUE",
@@ -1648,6 +1685,14 @@ struct req_format RQF_OST_GET_INFO_FIEMAP =
                                                ost_get_fiemap_server);
 EXPORT_SYMBOL(RQF_OST_GET_INFO_FIEMAP);
 
+struct req_format RQF_LFSCK_NOTIFY =
+       DEFINE_REQ_FMT0("LFSCK_NOTIFY", obd_lfsck_request, empty);
+EXPORT_SYMBOL(RQF_LFSCK_NOTIFY);
+
+struct req_format RQF_LFSCK_QUERY =
+       DEFINE_REQ_FMT0("LFSCK_QUERY", obd_lfsck_request, obd_lfsck_reply);
+EXPORT_SYMBOL(RQF_LFSCK_QUERY);
+
 #if !defined(__REQ_LAYOUT_USER__)
 
 /* Convenience macro */
@@ -1893,8 +1938,11 @@ swabber_dumper_helper(struct req_capsule *pill,
         else
                 do_swab = 0;
 
+       if (!field->rmf_dumper)
+               dump = 0;
+
         if (!(field->rmf_flags & RMF_F_STRUCT_ARRAY)) {
-                if (dump && field->rmf_dumper) {
+                if (dump) {
                         CDEBUG(D_RPCTRACE, "Dump of %sfield %s follows\n",
                                do_swab ? "unswabbed " : "", field->rmf_name);
                         field->rmf_dumper(value);
@@ -1903,7 +1951,7 @@ swabber_dumper_helper(struct req_capsule *pill,
                         return;
                 swabber(value);
                 ptlrpc_buf_set_swabbed(pill->rc_req, inout, offset);
-               if (dump && field->rmf_dumper) {
+               if (dump) {
                         CDEBUG(D_RPCTRACE, "Dump of swabbed field %s "
                                "follows\n", field->rmf_name);
                         field->rmf_dumper(value);
@@ -1920,7 +1968,7 @@ swabber_dumper_helper(struct req_capsule *pill,
         for (p = value, i = 0, n = len / field->rmf_size;
              i < n;
              i++, p += field->rmf_size) {
-                if (dump && field->rmf_dumper) {
+                if (dump) {
                         CDEBUG(D_RPCTRACE, "Dump of %sarray field %s, "
                                "element %d follows\n",
                                do_swab ? "unswabbed " : "", field->rmf_name, i);
@@ -1929,7 +1977,7 @@ swabber_dumper_helper(struct req_capsule *pill,
                 if (!do_swab)
                         continue;
                 swabber(p);
-                if (dump && field->rmf_dumper) {
+                if (dump) {
                         CDEBUG(D_RPCTRACE, "Dump of swabbed array field %s, "
                                "element %d follows\n", field->rmf_name, i);
                         field->rmf_dumper(value);