Whamcloud - gitweb
LU-2017 mdc: add layout swap between 2 objects
[fs/lustre-release.git] / lustre / ptlrpc / layout.c
index fe04c8c..84642b6 100644 (file)
@@ -294,6 +294,15 @@ static const struct req_msg_field *mds_reint_setxattr_client[] = {
         &RMF_EADATA
 };
 
+static const struct req_msg_field *mdt_swap_layouts[] = {
+       &RMF_PTLRPC_BODY,
+       &RMF_MDT_BODY,
+       &RMF_SWAP_LAYOUTS,
+       &RMF_CAPA1,
+       &RMF_CAPA2,
+       &RMF_DLM_REQ
+};
+
 static const struct req_msg_field *obd_connect_client[] = {
         &RMF_PTLRPC_BODY,
         &RMF_TGTUUID,
@@ -678,9 +687,8 @@ static struct req_format *req_formats[] = {
        &RQF_MDS_HSM_STATE_SET,
        &RQF_MDS_HSM_ACTION,
        &RQF_MDS_HSM_REQUEST,
-
+       &RQF_MDS_SWAP_LAYOUTS,
        &RQF_UPDATE_OBJ,
-
        &RQF_QC_CALLBACK,
         &RQF_OST_CONNECT,
         &RQF_OST_DISCONNECT,
@@ -1104,6 +1112,10 @@ struct req_msg_field RMF_UPDATE_REPLY = DEFINE_MSGF("update_reply", 0, -1,
                                                    NULL);
 EXPORT_SYMBOL(RMF_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);
 /*
  * Request formats.
  */
@@ -1437,6 +1449,11 @@ struct req_format RQF_MDS_HSM_REQUEST =
        DEFINE_REQ_FMT0("MDS_HSM_REQUEST", mdt_hsm_request, empty);
 EXPORT_SYMBOL(RQF_MDS_HSM_REQUEST);
 
+struct req_format RQF_MDS_SWAP_LAYOUTS =
+       DEFINE_REQ_FMT0("MDS_SWAP_LAYOUTS",
+                       mdt_swap_layouts, empty);
+EXPORT_SYMBOL(RQF_MDS_SWAP_LAYOUTS);
+
 /* This is for split */
 struct req_format RQF_MDS_WRITEPAGE =
         DEFINE_REQ_FMT0("MDS_WRITEPAGE",