[Pvfs2-cvs] commit by kunkel in pvfs2/src/proto: PINT-le-bytefield.c PINT-reqproto-encode.c pvfs2-req-proto.h

CVS commit program cvs at parl.clemson.edu
Tue Aug 22 06:54:20 EDT 2006


Update of /projects/cvsroot/pvfs2/src/proto
In directory parlweb1:/tmp/cvs-serv29962/src/proto

Modified Files:
      Tag: kunkel-branch
	PINT-le-bytefield.c PINT-reqproto-encode.c pvfs2-req-proto.h 
Log Message:
Added tool which prints file mapping to server aliases. Added 
experimental stubs for migration tools. Added kernel tgid to request ID.
Bugfix of PINT_cached_config_get_one_server_str.


Index: PINT-le-bytefield.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/proto/PINT-le-bytefield.c,v
diff -p -u -r1.41.4.3 -r1.41.4.4
--- PINT-le-bytefield.c	19 Aug 2006 13:09:38 -0000	1.41.4.3
+++ PINT-le-bytefield.c	22 Aug 2006 10:54:20 -0000	1.41.4.4
@@ -105,6 +105,10 @@ static void lebf_initialize(void)
 	    case PVFS_SERV_REMOVE:
 		/* nothing special, let normal encoding work */
 		break;
+        case PVFS_SERV_MGMT_MIGRATE:
+        req.u.mgmt_migrate.new_datafile_extent_array.extent_count = 0;
+        reqsize = extra_size_PVFS_servreq_mgmt_migrate;        
+        break;
 	    case PVFS_SERV_MGMT_REMOVE_OBJECT:
 		/* nothing special, let normal encoding work */
 		break;
@@ -336,6 +340,7 @@ static int lebf_encode_req(
 	CASE(PVFS_SERV_LOOKUP_PATH, lookup_path);
 	CASE(PVFS_SERV_CREATE, create);
 	CASE(PVFS_SERV_REMOVE, remove);
+    CASE(PVFS_SERV_MGMT_MIGRATE, mgmt_migrate);
 	CASE(PVFS_SERV_MGMT_REMOVE_OBJECT, mgmt_remove_object);
 	CASE(PVFS_SERV_MGMT_REMOVE_DIRENT, mgmt_remove_dirent);
 	CASE(PVFS_SERV_MGMT_GET_DIRDATA_HANDLE, mgmt_get_dirdata_handle);
@@ -442,6 +447,7 @@ static int lebf_encode_resp(
         CASE(PVFS_SERV_MKDIR, mkdir);
         CASE(PVFS_SERV_READDIR, readdir);
         CASE(PVFS_SERV_STATFS, statfs);
+        CASE(PVFS_SERV_MGMT_MIGRATE, mgmt_migrate);
         CASE(PVFS_SERV_MGMT_SETPARAM, mgmt_setparam);
         CASE(PVFS_SERV_MGMT_PERF_MON, mgmt_perf_mon);
         CASE(PVFS_SERV_MGMT_ITERATE_HANDLES, mgmt_iterate_handles);
@@ -543,6 +549,7 @@ static int lebf_decode_req(
 	CASE(PVFS_SERV_READDIR, readdir);
 	CASE(PVFS_SERV_FLUSH, flush);
 	CASE(PVFS_SERV_STATFS, statfs);
+    CASE(PVFS_SERV_MGMT_MIGRATE, mgmt_migrate);
 	CASE(PVFS_SERV_MGMT_SETPARAM, mgmt_setparam);
 	CASE(PVFS_SERV_MGMT_PERF_MON, mgmt_perf_mon);
 	CASE(PVFS_SERV_MGMT_ITERATE_HANDLES, mgmt_iterate_handles);
@@ -625,6 +632,7 @@ static int lebf_decode_resp(
 	CASE(PVFS_SERV_MKDIR, mkdir);
 	CASE(PVFS_SERV_READDIR, readdir);
 	CASE(PVFS_SERV_STATFS, statfs);
+    CASE(PVFS_SERV_MGMT_MIGRATE, mgmt_migrate);
 	CASE(PVFS_SERV_MGMT_SETPARAM, mgmt_setparam);
 	CASE(PVFS_SERV_MGMT_PERF_MON, mgmt_perf_mon);
 	CASE(PVFS_SERV_MGMT_ITERATE_HANDLES, mgmt_iterate_handles);
@@ -727,7 +735,9 @@ static void lebf_decode_rel(struct PINT_
 		if (req->u.mkdir.attr.mask & PVFS_ATTR_META_DFILES)
 		    decode_free(req->u.mkdir.attr.u.meta.dfile_array);
 		break;
-
+        case PVFS_SERV_MGMT_MIGRATE:
+        decode_free(req->u.mgmt_migrate.new_datafile_extent_array.extent_array);
+        break;
 	    case PVFS_SERV_MGMT_DSPACE_INFO_LIST:
 		decode_free(req->u.mgmt_dspace_info_list.handle_array);
 		break;
@@ -842,6 +852,7 @@ static void lebf_decode_rel(struct PINT_
 	    case PVFS_SERV_FLUSH:
 	    case PVFS_SERV_MGMT_SETPARAM:
 	    case PVFS_SERV_MGMT_NOOP:
+        case PVFS_SERV_MGMT_MIGRATE:
 	    case PVFS_SERV_STATFS:
 	    case PVFS_SERV_WRITE_COMPLETION:
 	    case PVFS_SERV_PROTO_ERROR:

Index: PINT-reqproto-encode.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/proto/PINT-reqproto-encode.c,v
diff -p -u -r1.28.18.3 -r1.28.18.4
--- PINT-reqproto-encode.c	24 Jul 2006 17:20:55 -0000	1.28.18.3
+++ PINT-reqproto-encode.c	22 Aug 2006 10:54:20 -0000	1.28.18.4
@@ -355,7 +355,7 @@ int PINT_encode_calc_max_size(
     return(ret);
 }
 
-static char PVFS_server_op_name[][35]={
+static char PVFS_server_op_name[][PVFS_MAX_SERVER_OP+2]={
     "PVFS_SERV_INVALID",
     "PVFS_SERV_CREATE",
     "PVFS_SERV_REMOVE",
@@ -389,7 +389,8 @@ static char PVFS_server_op_name[][35]={
     "PVFS_SERV_SETEATTR",
     "PVFS_SERV_DELEATTR",
     "PVFS_SERV_LISTEATTR",
-    "PVFS_SERV_SMALL_IO"
+    "PVFS_SERV_SMALL_IO",
+    "PVFS_SERV_MGMT_MIGRATE"
 };
 
 char * server_op_to_str(enum PVFS_server_op sop){

Index: pvfs2-req-proto.h
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/proto/pvfs2-req-proto.h,v
diff -p -u -r1.140.4.3 -r1.140.4.4
--- pvfs2-req-proto.h	19 Aug 2006 13:09:38 -0000	1.140.4.3
+++ pvfs2-req-proto.h	22 Aug 2006 10:54:20 -0000	1.140.4.4
@@ -74,7 +74,8 @@ enum PVFS_server_op
     PVFS_SERV_SETEATTR = 30,
     PVFS_SERV_DELEATTR = 31,
     PVFS_SERV_LISTEATTR = 32,
-    PVFS_SERV_SMALL_IO = 33
+    PVFS_SERV_SMALL_IO = 33,
+    PVFS_SERV_MGMT_MIGRATE = 34
     /* IMPORTANT: please remember to modify PVFS_MAX_SERVER_OP define
      * (below) if you add a new operation to this list
      */
@@ -201,6 +202,17 @@ endecode_fields_1_struct(
     PVFS_servresp_create,
     PVFS_handle, handle)
 
+/*
+ * New datafile handle
+ */
+struct PVFS_servresp_mgmt_migrate
+{
+    PVFS_handle handle;
+};
+endecode_fields_1_struct(
+    PVFS_servresp_mgmt_migrate,
+    PVFS_handle, handle)
+
 /* remove *****************************************************/
 /* - used to remove an existing metafile or datafile object */
 
@@ -923,6 +935,46 @@ endecode_fields_1_struct(
 
 #define SMALL_IO_MAX_SEGMENTS 64
 
+
+struct PVFS_servreq_mgmt_migrate
+{
+    PVFS_handle handle;
+    PVFS_fs_id  fs_id;
+    
+    PVFS_handle datafile_handle;
+    PVFS_handle_extent_array new_datafile_extent_array;
+};
+endecode_fields_4_struct(
+    PVFS_servreq_mgmt_migrate,
+    PVFS_handle, handle,
+    PVFS_fs_id, fs_id,
+    PVFS_handle, datafile_handle,
+    PVFS_handle_extent_array, new_datafile_extent_array)
+#define extra_size_PVFS_servreq_mgmt_migrate \
+    (PVFS_REQ_LIMIT_HANDLES_COUNT * sizeof(PVFS_handle_extent))
+
+#define PINT_SERVREQ_MGMT_MIGRATE_FILL(__req,                \
+                                 __creds,              \
+                                 __handle,             \
+                                 __fsid,               \
+                                 __data_handle,        \
+                                 __ext_array,          \
+                                 __hints)              \
+do {                                                   \
+    memset(&(__req), 0, sizeof(__req));                \
+    (__req).op = PVFS_SERV_CREATE;                     \
+    (__req).hints = (__hints);                         \
+    (__req).credentials = (__creds);                   \
+    (__req).u.mgmt_migrate.fs_id = (__fsid);           \
+    (__req).u.mgmt_migrate.handle = (__handle);        \
+    (__req).u.mgmt_migrate.datafile_handle = (__data_handle);      \
+    (__req).u.mgmt_migrate.new_datafile_extent_array.extent_count =\
+        (__ext_array).extent_count;                                \
+    (__req).u.mgmt_migrate.new_datafile_extent_array.extent_array =\
+        (__ext_array).extent_array;                                \
+} while (0)
+
+
 struct PVFS_servreq_small_io
 {
     PVFS_handle handle;
@@ -1535,6 +1587,7 @@ struct PVFS_server_req
         struct PVFS_servreq_mgmt_remove_object mgmt_remove_object;
         struct PVFS_servreq_mgmt_remove_dirent mgmt_remove_dirent;
         struct PVFS_servreq_mgmt_get_dirdata_handle mgmt_get_dirdata_handle;
+        struct PVFS_servreq_mgmt_migrate mgmt_migrate;
         struct PVFS_servreq_geteattr geteattr;
         struct PVFS_servreq_seteattr seteattr;
         struct PVFS_servreq_deleattr deleattr;
@@ -1593,6 +1646,7 @@ struct PVFS_server_resp
         struct PVFS_servresp_mgmt_dspace_info_list mgmt_dspace_info_list;
         struct PVFS_servresp_mgmt_event_mon mgmt_event_mon;
         struct PVFS_servresp_mgmt_get_dirdata_handle mgmt_get_dirdata_handle;
+        struct PVFS_servresp_mgmt_migrate mgmt_migrate;
         struct PVFS_servresp_geteattr geteattr;
         struct PVFS_servresp_listeattr listeattr;
         struct PVFS_servresp_small_io small_io;



More information about the Pvfs2-cvs mailing list