  | 84 | 84 | | PVFS_SERV_TREE_REMOVE = 41, |
| | 85 | 85 | | PVFS_SERV_TREE_GET_FILE_SIZE = 42, |
| | 86 | 86 | | PVFS_SERV_MGMT_MIGRATE = 43, |
  | | 87 | + | PVFS_SERV_MIGRATE_CREATE = 44, |
| 87 | 88 | | /* leave this entry last */ |
| | 88 | 89 | | PVFS_SERV_NUM_OPS |
| | 89 | 90 | | }; |
| |
|
|
 |
… |
| 1907 | 1908 | | /* copy a single object and move to another server*/ |
| | 1908 | 1909 | | |
| | 1909 | 1910 | | struct PVFS_servreq_mgmt_migrate{ |
  | | 1911 | + | char *dest_server; |
| 1910 | 1912 | | PVFS_handle handle; |
| | 1911 | 1913 | | PVFS_fs_id fs_id; |
  | 1912 | | - | char *dist_server; |
| 1913 | 1914 | | }; |
| | 1914 | 1915 | | |
| | 1915 | 1916 | | endecode_fields_3_struct( |
| | 1916 | 1917 | | PVFS_servreq_mgmt_migrate, |
  | | 1918 | + | string, dest_server, |
| 1917 | 1919 | | PVFS_handle, handle, |
  | 1918 | | - | PVFS_fs_id, fs_id, |
| | 1919 | | - | string , dist_server ); |
| | | 1920 | + | PVFS_fs_id, fs_id); |
| 1920 | 1921 | | |
  | | 1922 | + | #define extra_size_PVFS_servreq_migrate \ |
| | | 1923 | + | roundup8(PVFS_REQ_LIMIT_SEGMENT_BYTES+1) |
| | | 1924 | + | |
| 1921 | 1925 | | #define PINT_SERVREQ_MGMT_MIGRATE_FILL(__req, \ |
| | 1922 | 1926 | | __creds, \ |
| | 1923 | 1927 | | __fsid, \ |
| | 1924 | 1928 | | __handle, \ |
  | 1925 | | - | __dist_ser, \ |
| | | 1929 | + | __dest_server, \ |
| 1926 | 1930 | | __hints) \ |
| | 1927 | 1931 | | do{ \ |
| | 1928 | 1932 | | memset(&(__req), 0, sizeof(__req)); \ |
| |
|
|
 |
… |
| 1931 | 1935 | | (__req).hints = (__hints); \ |
| | 1932 | 1936 | | (__req).u.mgmt_migrate.handle = (__handle); \ |
| | 1933 | 1937 | | (__req).u.mgmt_migrate.fs_id = (__fsid); \ |
  | 1934 | | - | (__req).u.mgmt_migrate.dist_server = (__dist_ser); \ |
| | 1935 | | - | } while(0); |
| | | 1938 | + | (__req).u.mgmt_migrate.dest_server = __dest_server; \ |
| | | 1939 | + | } while(0) |
| 1936 | 1940 | | |
  | 1937 | | - | |
| | 1938 | | - | |
| | | 1941 | + | /**************************************************************************/ |
| | | 1942 | + | /*migrate-create*/ |
| 1939 | 1943 | | |
  | | 1944 | + | struct PVFS_servreq_migrate_create |
| | | 1945 | + | { |
| | | 1946 | + | int32_t mask; |
| | | 1947 | + | PVFS_ds_keyval *val; |
| | | 1948 | + | PVFS_ds_keyval *key; |
| | | 1949 | + | int32_t nkey; |
| | | 1950 | + | PVFS_fs_id fs_id; |
| | | 1951 | + | PVFS_handle handle; |
| | | 1952 | + | PVFS_object_attr attr; |
| | | 1953 | + | }; |
| 1940 | 1954 | | |
  | | 1955 | + | endecode_fields_4aa_struct( |
| | | 1956 | + | PVFS_servreq_migrate_create, |
| | | 1957 | + | PVFS_handle, handle, |
| | | 1958 | + | PVFS_fs_id, fs_id, |
| | | 1959 | + | int32_t, mask, |
| | | 1960 | + | PVFS_object_attr, attr, |
| | | 1961 | + | int32_t, nkey, |
| | | 1962 | + | PVFS_ds_keyval, key, |
| | | 1963 | + | PVFS_ds_keyval, val); |
| | | 1964 | + | |
| | | 1965 | + | #define extra_size_PVFS_servreq_migrate_create \ |
| | | 1966 | + | ((PVFS_REQ_LIMIT_KEY_LEN + PVFS_REQ_LIMIT_VAL_LEN) \ |
| | | 1967 | + | * PVFS_REQ_LIMIT_KEYVAL_LIST) |
| | | 1968 | + | |
| | | 1969 | + | #define PINT_SERVREQ_MIGRATE_CREATE_FILL(__req, \ |
| | | 1970 | + | __creds, \ |
| | | 1971 | + | __fs_id, \ |
| | | 1972 | + | __handle, \ |
| | | 1973 | + | __mask, \ |
| | | 1974 | + | __attr, \ |
| | | 1975 | + | __key, \ |
| | | 1976 | + | __val, \ |
| | | 1977 | + | __nkey, \ |
| | | 1978 | + | __hints) \ |
| | | 1979 | + | do{ \ |
| | | 1980 | + | memset(&(__req), 0, sizeof(__req)); \ |
| | | 1981 | + | (__req).op = PVFS_SERV_MIGRATE_CREATE; \ |
| | | 1982 | + | (__req).credentials = (__creds); \ |
| | | 1983 | + | (__req).hints = (__hints); \ |
| | | 1984 | + | (__req).u.migrate_create.fs_id = (__fs_id); \ |
| | | 1985 | + | (__req).u.migrate_create.handle = (__handle); \ |
| | | 1986 | + | (__req).u.migrate_create.attr = (__attr); \ |
| | | 1987 | + | (__req).u.migrate_create.nkey = (__nkey); \ |
| | | 1988 | + | (__req).u.migrate_create.mask = (__mask); \ |
| | | 1989 | + | (__req).u.migrate_create.key = (__key); \ |
| | | 1990 | + | (__req).u.migrate_create.val = (__val); \ |
| | | 1991 | + | }while(0) |
| | | 1992 | + | |
| | | 1993 | + | |
| | | 1994 | + | |
| | | 1995 | + | /* Types for mask used for migrate_create.sm */ |
| | | 1996 | + | #define MIGRATE_CREATE (1 << 0) |
| | | 1997 | + | #define MIGRATE_STORE (1 << 1) |
| | | 1998 | + | |
| | | 1999 | + | |
| | | 2000 | + | struct PVFS_servresp_migrate_create |
| | | 2001 | + | { |
| | | 2002 | + | PVFS_handle new_handle; |
| | | 2003 | + | }; |
| | | 2004 | + | |
| | | 2005 | + | endecode_fields_1_struct( |
| | | 2006 | + | PVFS_servresp_migrate_create, |
| | | 2007 | + | PVFS_handle, new_handle); |
| | | 2008 | + | |
| | | 2009 | + | |
| | | 2010 | + | /****************************************************************/ |
| | | 2011 | + | |
| | | 2012 | + | |
| 1941 | 2013 | | /* server request *********************************************/ |
| | 1942 | 2014 | | /* - generic request with union of all op specific structs */ |
| | 1943 | 2015 | | |
| |
|
|
 |
… |
| 1984 | 2056 | | struct PVFS_servreq_tree_remove tree_remove; |
| | 1985 | 2057 | | struct PVFS_servreq_tree_get_file_size tree_get_file_size; |
| | 1986 | 2058 | | struct PVFS_servreq_mgmt_migrate mgmt_migrate; |
  | | 2059 | + | struct PVFS_servreq_migrate_create migrate_create; |
| 1987 | 2060 | | } u; |
| | 1988 | 2061 | | }; |
| | 1989 | 2062 | | #ifdef __PINT_REQPROTO_ENCODE_FUNCS_C |
| |
|
|
 |
… |
| 2039 | 2112 | | struct PVFS_servresp_small_io small_io; |
| | 2040 | 2113 | | struct PVFS_servresp_listattr listattr; |
| | 2041 | 2114 | | struct PVFS_servresp_tree_get_file_size tree_get_file_size; |
  | | 2115 | + | struct PVFS_servresp_migrate_create migrate_create; |
  | 2042 | 2116 | | } u; |
| | 2043 | 2117 | | }; |
| | 2044 | 2118 | | endecode_fields_2_struct( |