[Pvfs2-cvs] commit by kunkel in pvfs2/src/client/sysint: client-state-machine.h getparent.c mgmt-create-dirent.sm mgmt-event-mon-list.sm mgmt-get-dfile-array.sm mgmt-get-dirdata-handle.sm mgmt-iterate-handles-list.sm mgmt-misc.c mgmt-noop.sm mgmt-perf-mon-list.sm mgmt-remove-dirent.sm mgmt-remove-object.sm mgmt-setparam-list.sm mgmt-statfs-list.sm pint-sysint-utils.c pint-sysint-utils.h remove.sm server-get-config.sm sys-create.sm sys-del-eattr.sm sys-flush.sm sys-get-eattr.sm sys-getattr.sm sys-io.sm sys-list-eattr.sm sys-lookup.sm sys-mkdir.sm sys-readdir.sm sys-remove.sm sys-rename.sm sys-set-eattr.sm sys-setattr.sm sys-small-io.sm sys-statfs.sm sys-symlink.sm sys-truncate.sm

CVS commit program cvs at parl.clemson.edu
Sat Aug 19 09:09:35 EDT 2006


Update of /projects/cvsroot/pvfs2/src/client/sysint
In directory parlweb1:/tmp/cvs-serv3901/src/client/sysint

Modified Files:
      Tag: kunkel-branch
	client-state-machine.h getparent.c mgmt-create-dirent.sm 
	mgmt-event-mon-list.sm mgmt-get-dfile-array.sm 
	mgmt-get-dirdata-handle.sm mgmt-iterate-handles-list.sm 
	mgmt-misc.c mgmt-noop.sm mgmt-perf-mon-list.sm 
	mgmt-remove-dirent.sm mgmt-remove-object.sm 
	mgmt-setparam-list.sm mgmt-statfs-list.sm pint-sysint-utils.c 
	pint-sysint-utils.h remove.sm server-get-config.sm 
	sys-create.sm sys-del-eattr.sm sys-flush.sm sys-get-eattr.sm 
	sys-getattr.sm sys-io.sm sys-list-eattr.sm sys-lookup.sm 
	sys-mkdir.sm sys-readdir.sm sys-remove.sm sys-rename.sm 
	sys-set-eattr.sm sys-setattr.sm sys-small-io.sm sys-statfs.sm 
	sys-symlink.sm sys-truncate.sm 
Log Message:
Added PVFS-hint, changed tests for pwrite/odirect/transactions/aio dbpf
 support to allow users to explicitly enable or disable the functionality.
In the aio implementation is a bug since somebody else modified it.


Index: client-state-machine.h
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/client-state-machine.h,v
diff -p -u -r1.162 -r1.162.4.1
--- client-state-machine.h	16 Jun 2006 21:01:11 -0000	1.162
+++ client-state-machine.h	19 Aug 2006 13:09:33 -0000	1.162.4.1
@@ -17,6 +17,7 @@
 */
 #include "pvfs2-sysint.h"
 #include "pvfs2-types.h"
+#include "pvfs2-hint.h"
 #include "pvfs2-storage.h"
 #include "pvfs2-util.h"
 #include "PINT-reqproto-encode.h"
@@ -492,6 +493,12 @@ typedef struct PINT_client_sm
     void *user_ptr;
 
     PVFS_credentials *cred_p;
+    
+    /*
+     * hints for specific client action, for example request_ID...
+     */ 
+    PVFS_hint *hints;
+    
     union
     {
 	struct PINT_client_remove_sm remove;

Index: getparent.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/getparent.c,v
diff -p -u -r1.12.38.2 -r1.12.38.3
--- getparent.c	24 Jul 2006 17:20:18 -0000	1.12.38.2
+++ getparent.c	19 Aug 2006 13:09:33 -0000	1.12.38.3
@@ -15,7 +15,8 @@ int PVFS_sys_getparent(
     PVFS_fs_id fs_id,
     char *entry_name,
     PVFS_credentials *credentials,
-    PVFS_sysresp_getparent *resp)
+    PVFS_sysresp_getparent *resp,
+    PVFS_hint *hints)
 {
     int ret = -PVFS_EINVAL;
     char parent_buf[PVFS_NAME_MAX] = {0};
@@ -38,7 +39,7 @@ int PVFS_sys_getparent(
 
     memset(&resp_look,0,sizeof(PVFS_sysresp_lookup));
     ret = PVFS_sys_lookup(fs_id, parent_buf, credentials,
-                          &resp_look, PVFS2_LOOKUP_LINK_NO_FOLLOW);
+                          &resp_look, PVFS2_LOOKUP_LINK_NO_FOLLOW, hints);
     if (ret)
     {
         gossip_err("Lookup failed on %s\n",parent_buf);

Index: mgmt-create-dirent.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/mgmt-create-dirent.sm,v
diff -p -u -r1.11.6.1 -r1.11.6.2
--- mgmt-create-dirent.sm	18 Aug 2006 05:12:01 -0000	1.11.6.1
+++ mgmt-create-dirent.sm	19 Aug 2006 13:09:33 -0000	1.11.6.2
@@ -81,6 +81,7 @@ PVFS_error PVFS_imgmt_create_dirent(
     PVFS_handle entry_handle,
     PVFS_credentials *credentials,
     PVFS_mgmt_op_id *op_id,
+    PVFS_hint * hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -109,6 +110,7 @@ PVFS_error PVFS_imgmt_create_dirent(
     sm_p->parent_ref = parent_ref;
     sm_p->u.mgmt_create_dirent.entry = entry;
     sm_p->u.mgmt_create_dirent.entry_handle = entry_handle;
+    sm_p->hints = hints;
 
     gossip_debug(
         GOSSIP_CLIENT_DEBUG, "Trying to create dirent %s under %llu,%d\n",
@@ -125,7 +127,8 @@ PVFS_error PVFS_mgmt_create_dirent(
     PVFS_object_ref parent_ref,
     char *entry,
     PVFS_handle entry_handle,
-    PVFS_credentials *credentials)
+    PVFS_credentials *credentials,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_mgmt_op_id op_id;
@@ -134,7 +137,7 @@ PVFS_error PVFS_mgmt_create_dirent(
                  "PVFS_mgmt_create_dirent entered\n");
 
     ret = PVFS_imgmt_create_dirent(
-        parent_ref, entry, entry_handle, credentials, &op_id, NULL);
+        parent_ref, entry, entry_handle, credentials, &op_id, hints, NULL);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_imgmt_create_dirent call", ret);
@@ -188,7 +191,8 @@ static int mgmt_create_dirent_setup_msgp
         sm_p->u.mgmt_create_dirent.entry,
         sm_p->u.mgmt_create_dirent.entry_handle,
         sm_p->parent_ref.handle,
-        sm_p->parent_ref.fs_id);
+        sm_p->parent_ref.fs_id,
+        sm_p->hints);
 
     msg_p->fs_id = sm_p->parent_ref.fs_id;
     msg_p->handle = sm_p->u.mgmt_create_dirent.entry_handle;

Index: mgmt-event-mon-list.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/mgmt-event-mon-list.sm,v
diff -p -u -r1.26 -r1.26.6.1
--- mgmt-event-mon-list.sm	22 May 2006 21:50:13 -0000	1.26
+++ mgmt-event-mon-list.sm	19 Aug 2006 13:09:34 -0000	1.26.6.1
@@ -72,6 +72,7 @@ PVFS_error PVFS_imgmt_event_mon_list(
     int event_count,
     PVFS_error_details *details,
     PVFS_mgmt_op_id *op_id,
+    PVFS_hint * hints,
     void *user_ptr)
 {
     PINT_client_sm *sm_p = NULL;
@@ -100,6 +101,7 @@ PVFS_error PVFS_imgmt_event_mon_list(
     sm_p->u.event_mon_list.event_count = event_count;
     sm_p->u.event_mon_list.addr_array = addr_array;
     sm_p->u.event_mon_list.details = details;
+    sm_p->hints = hints;
 
     sm_p->msgarray_count = server_count;
     sm_p->msgarray = (PINT_sm_msgpair_state *)malloc(
@@ -121,7 +123,8 @@ PVFS_error PVFS_mgmt_event_mon_list(
     PVFS_BMI_addr_t *addr_array,
     int server_count,
     int event_count,
-    PVFS_error_details *details)
+    PVFS_error_details *details,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_mgmt_op_id op_id;
@@ -131,7 +134,7 @@ PVFS_error PVFS_mgmt_event_mon_list(
 
     ret = PVFS_imgmt_event_mon_list(
         fs_id, credentials, event_matrix, addr_array, server_count,
-        event_count, details, &op_id, NULL);
+        event_count, details, &op_id, hints, NULL);
 
     if (ret)
     {
@@ -173,7 +176,8 @@ static int mgmt_event_mon_list_setup_msg
         PINT_SERVREQ_MGMT_EVENT_MON_FILL(
             msg_p->req,
             *sm_p->cred_p,
-            sm_p->u.event_mon_list.event_count);
+            sm_p->u.event_mon_list.event_count,
+            sm_p->hints);
 
         msg_p->fs_id = sm_p->u.event_mon_list.fs_id;
         msg_p->handle = PVFS_HANDLE_NULL;

Index: mgmt-get-dfile-array.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/mgmt-get-dfile-array.sm,v
diff -p -u -r1.27 -r1.27.6.1
--- mgmt-get-dfile-array.sm	22 May 2006 21:50:13 -0000	1.27
+++ mgmt-get-dfile-array.sm	19 Aug 2006 13:09:34 -0000	1.27.6.1
@@ -61,6 +61,7 @@ PVFS_error PVFS_imgmt_get_dfile_array(
     PVFS_handle *dfile_array,
     int dfile_count,
     PVFS_mgmt_op_id *op_id,
+    PVFS_hint * hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -86,6 +87,7 @@ PVFS_error PVFS_imgmt_get_dfile_array(
     sm_p->object_ref = ref;
     sm_p->u.get_dfile_array.dfile_array = dfile_array;
     sm_p->u.get_dfile_array.dfile_count = dfile_count;
+    sm_p->hints = hints;
 
     PINT_SM_GETATTR_STATE_FILL(
         sm_p->getattr,
@@ -104,7 +106,8 @@ PVFS_error PVFS_mgmt_get_dfile_array(
     PVFS_object_ref ref,
     PVFS_credentials *credentials,
     PVFS_handle *dfile_array,
-    int dfile_count)
+    int dfile_count,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_mgmt_op_id op_id;
@@ -113,7 +116,7 @@ PVFS_error PVFS_mgmt_get_dfile_array(
                  "PVFS_mgmt_get_dfile_array entered\n");
 
     ret = PVFS_imgmt_get_dfile_array(
-        ref, credentials, dfile_array, dfile_count, &op_id, NULL);
+        ref, credentials, dfile_array, dfile_count, &op_id, hints, NULL);
 
     if (ret)
     {

Index: mgmt-get-dirdata-handle.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/mgmt-get-dirdata-handle.sm,v
diff -p -u -r1.9 -r1.9.6.1
--- mgmt-get-dirdata-handle.sm	22 May 2006 21:50:13 -0000	1.9
+++ mgmt-get-dirdata-handle.sm	19 Aug 2006 13:09:34 -0000	1.9.6.1
@@ -83,6 +83,7 @@ PVFS_error PVFS_imgmt_get_dirdata_handle
     PVFS_handle *out_dirdata_handle,
     PVFS_credentials *credentials,
     PVFS_mgmt_op_id *op_id,
+    PVFS_hint * hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -109,6 +110,7 @@ PVFS_error PVFS_imgmt_get_dirdata_handle
     PINT_init_sysint_credentials(sm_p->cred_p, credentials);
     sm_p->parent_ref = parent_ref;
     sm_p->u.mgmt_get_dirdata_handle.dirdata_handle = out_dirdata_handle;
+    sm_p->hints = hints;
 
     gossip_debug(
         GOSSIP_CLIENT_DEBUG, "Trying to get dirdata object of parent "
@@ -123,7 +125,8 @@ PVFS_error PVFS_imgmt_get_dirdata_handle
 PVFS_error PVFS_mgmt_get_dirdata_handle(
     PVFS_object_ref parent_ref,
     PVFS_handle *out_dirdata_handle,
-    PVFS_credentials *credentials)
+    PVFS_credentials *credentials,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_mgmt_op_id op_id;
@@ -132,7 +135,7 @@ PVFS_error PVFS_mgmt_get_dirdata_handle(
                  "PVFS_mgmt_get_dirdata_handle entered\n");
 
     ret = PVFS_imgmt_get_dirdata_handle(
-        parent_ref, out_dirdata_handle, credentials, &op_id, NULL);
+        parent_ref, out_dirdata_handle, credentials, &op_id, hints, NULL);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_imgmt_get_dirdata_handle call", ret);
@@ -176,7 +179,8 @@ static int mgmt_get_dirdata_handle_setup
         msg_p->req,
         *sm_p->cred_p,
         sm_p->parent_ref.fs_id,
-        sm_p->parent_ref.handle);
+        sm_p->parent_ref.handle,
+        sm_p->hints);
 
     gossip_debug(GOSSIP_CLIENT_DEBUG, "- doing MGMT_GET_DIRDATA_HANDLE "
                  "under %llu,%d\n", llu(sm_p->parent_ref.handle),

Index: mgmt-iterate-handles-list.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/mgmt-iterate-handles-list.sm,v
diff -p -u -r1.26 -r1.26.2.1
--- mgmt-iterate-handles-list.sm	14 Jul 2006 21:13:50 -0000	1.26
+++ mgmt-iterate-handles-list.sm	19 Aug 2006 13:09:34 -0000	1.26.2.1
@@ -75,6 +75,7 @@ PVFS_error PVFS_imgmt_iterate_handles_li
     int server_count,
     PVFS_error_details *details,
     PVFS_mgmt_op_id *op_id,
+    PVFS_hint * hints,
     void *user_ptr)
 {
     PINT_client_sm *sm_p = NULL;
@@ -104,6 +105,7 @@ PVFS_error PVFS_imgmt_iterate_handles_li
     sm_p->u.iterate_handles_list.handle_count_array = handle_count_array;
     sm_p->u.iterate_handles_list.position_array = position_array;
     sm_p->u.iterate_handles_list.details = details;
+    sm_p->hints = hints;
 
     sm_p->msgarray_count = server_count;
     sm_p->msgarray = (PINT_sm_msgpair_state *)malloc(
@@ -129,7 +131,8 @@ PVFS_error PVFS_mgmt_iterate_handles_lis
     PVFS_ds_position *position_array,
     PVFS_BMI_addr_t *addr_array,
     int server_count,
-    PVFS_error_details *details)
+    PVFS_error_details *details,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_mgmt_op_id op_id;
@@ -139,7 +142,7 @@ PVFS_error PVFS_mgmt_iterate_handles_lis
 
     ret = PVFS_imgmt_iterate_handles_list(
         fs_id, credentials, handle_matrix, handle_count_array,
-        position_array, addr_array, server_count, details, &op_id, NULL);
+        position_array, addr_array, server_count, details, &op_id, hints, NULL);
 
     if (ret)
     {
@@ -193,7 +196,8 @@ static int mgmt_iterate_handles_list_set
 		*sm_p->cred_p,
 		sm_p->u.iterate_handles_list.fs_id,
 		sm_p->u.iterate_handles_list.handle_count_array[i],
-		sm_p->u.iterate_handles_list.position_array[i]);
+		sm_p->u.iterate_handles_list.position_array[i],
+		sm_p->hints);
 	    j++;
 	    msg_p->fs_id = sm_p->u.iterate_handles_list.fs_id;
 	    msg_p->handle = PVFS_HANDLE_NULL;

Index: mgmt-misc.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/mgmt-misc.c,v
diff -p -u -r1.26.38.2 -r1.26.38.3
--- mgmt-misc.c	24 Jul 2006 17:20:18 -0000	1.26.38.2
+++ mgmt-misc.c	19 Aug 2006 13:09:34 -0000	1.26.38.3
@@ -54,7 +54,8 @@ PVFS_error PVFS_mgmt_statfs_all(
     PVFS_credentials *credentials,
     struct PVFS_mgmt_server_stat *stat_array,
     int *inout_count_p,
-    PVFS_error_details *details)
+    PVFS_error_details *details,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL;
     PVFS_BMI_addr_t *addr_array = NULL;
@@ -105,7 +106,7 @@ PVFS_error PVFS_mgmt_statfs_all(
     
     ret = PVFS_mgmt_statfs_list(
         fs_id, credentials, stat_array, addr_array,
-        real_count, details);
+        real_count, details, hints);
 
     free(addr_array);
 
@@ -123,7 +124,8 @@ PVFS_error PVFS_mgmt_setparam_all(
     enum PVFS_server_param param,
     uint64_t value,
     uint64_t *old_value_array,
-    PVFS_error_details *details)
+    PVFS_error_details *details,
+    PVFS_hint * hints)
 {
     int count = 0;
     PVFS_error ret = -PVFS_EINVAL;
@@ -167,7 +169,7 @@ PVFS_error PVFS_mgmt_setparam_all(
 
     ret = PVFS_mgmt_setparam_list(
         fs_id, credentials, param, value, addr_array,
-        old_value_array, count, details);
+        old_value_array, count, details, hints);
 
     free(addr_array);
 
@@ -183,7 +185,8 @@ PVFS_error PVFS_mgmt_setparam_single(
     uint64_t value,
     char *server_addr_str,
     uint64_t *old_value,
-    PVFS_error_details *details)
+    PVFS_error_details *details,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL;
     PVFS_BMI_addr_t addr;
@@ -192,7 +195,7 @@ PVFS_error PVFS_mgmt_setparam_single(
     {
         ret = PVFS_mgmt_setparam_list(
             fs_id, credentials, param, value,
-            &addr, old_value, 1, details);
+            &addr, old_value, 1, details, hints);
     }
     return ret;
 }

Index: mgmt-noop.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/mgmt-noop.sm,v
diff -p -u -r1.29 -r1.29.6.1
--- mgmt-noop.sm	22 May 2006 21:50:13 -0000	1.29
+++ mgmt-noop.sm	19 Aug 2006 13:09:34 -0000	1.29.6.1
@@ -68,6 +68,7 @@ PVFS_error PVFS_imgmt_noop(
     PVFS_credentials *credentials,
     PVFS_BMI_addr_t addr,
     PVFS_mgmt_op_id *op_id,
+    PVFS_hint * hints,
     void *user_ptr)
 {
     PINT_client_sm *sm_p = NULL;
@@ -86,6 +87,7 @@ PVFS_error PVFS_imgmt_noop(
     sm_p->msgpair.fs_id = fs_id;
     sm_p->msgpair.retry_flag = PVFS_MSGPAIR_NO_RETRY;
     sm_p->msgpair.svr_addr = addr;
+    sm_p->hints = hints;
 
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_mgmt_noop calling "
                  "PINT_client_state_machine_post()\n");
@@ -99,14 +101,15 @@ PVFS_error PVFS_imgmt_noop(
 PVFS_error PVFS_mgmt_noop(
     PVFS_fs_id fs_id,
     PVFS_credentials *credentials,
-    PVFS_BMI_addr_t addr)
+    PVFS_BMI_addr_t addr,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_mgmt_op_id op_id;
 
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_mgmt_noop entered\n");
 
-    ret = PVFS_imgmt_noop(fs_id, credentials, addr, &op_id, NULL);
+    ret = PVFS_imgmt_noop(fs_id, credentials, addr, &op_id, hints, NULL);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_imgmt_noop call", ret);
@@ -132,7 +135,7 @@ static int mgmt_noop_setup_msgpair(PINT_
     gossip_debug(GOSSIP_CLIENT_DEBUG,
                  "noop state: mgmt_noop_setup_msgpair\n");
 
-    PINT_SERVREQ_MGMT_NOOP_FILL(sm_p->msgpair.req, *sm_p->cred_p);
+    PINT_SERVREQ_MGMT_NOOP_FILL(sm_p->msgpair.req, *sm_p->cred_p, sm_p->hints);
 
     sm_p->msgarray = &(sm_p->msgpair);
     sm_p->msgarray_count = 1;

Index: mgmt-perf-mon-list.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/mgmt-perf-mon-list.sm,v
diff -p -u -r1.29 -r1.29.6.1
--- mgmt-perf-mon-list.sm	22 May 2006 21:50:13 -0000	1.29
+++ mgmt-perf-mon-list.sm	19 Aug 2006 13:09:34 -0000	1.29.6.1
@@ -77,6 +77,7 @@ PVFS_error PVFS_imgmt_perf_mon_list(
     int history_count,
     PVFS_error_details *details,
     PVFS_mgmt_op_id *op_id,
+    PVFS_hint * hints,
     void *user_ptr)
 {
     PINT_client_sm *sm_p = NULL;
@@ -107,6 +108,7 @@ PVFS_error PVFS_imgmt_perf_mon_list(
     sm_p->u.perf_mon_list.next_id_array = next_id_array;
     sm_p->u.perf_mon_list.end_time_ms_array = end_time_ms_array;
     sm_p->u.perf_mon_list.details = details;
+    sm_p->hints = hints;
 
     sm_p->msgarray_count = server_count;
     sm_p->msgarray = (PINT_sm_msgpair_state *)malloc(
@@ -133,7 +135,8 @@ PVFS_error PVFS_mgmt_perf_mon_list(
     uint32_t* next_id_array,
     int server_count,
     int history_count,
-    PVFS_error_details *details)
+    PVFS_error_details *details,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_mgmt_op_id op_id;
@@ -144,7 +147,7 @@ PVFS_error PVFS_mgmt_perf_mon_list(
     ret = PVFS_imgmt_perf_mon_list(
         fs_id, credentials, perf_matrix, end_time_ms_array,
         addr_array, next_id_array, server_count, history_count,
-        details, &op_id, NULL);
+        details, &op_id, hints, NULL);
 
     if (ret)
     {
@@ -186,7 +189,8 @@ static int mgmt_perf_mon_list_setup_msgp
             msg_p->req,
             *sm_p->cred_p,
             sm_p->u.perf_mon_list.next_id_array[i],
-            sm_p->u.perf_mon_list.history_count);
+            sm_p->u.perf_mon_list.history_count,
+            sm_p->hints);
 
 	msg_p->fs_id = sm_p->u.perf_mon_list.fs_id;
 	msg_p->handle = PVFS_HANDLE_NULL;

Index: mgmt-remove-dirent.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/mgmt-remove-dirent.sm,v
diff -p -u -r1.9 -r1.9.6.1
--- mgmt-remove-dirent.sm	22 May 2006 21:50:13 -0000	1.9
+++ mgmt-remove-dirent.sm	19 Aug 2006 13:09:34 -0000	1.9.6.1
@@ -81,6 +81,7 @@ PVFS_error PVFS_imgmt_remove_dirent(
     char *entry,
     PVFS_credentials *credentials,
     PVFS_mgmt_op_id *op_id,
+    PVFS_hint * hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -107,6 +108,7 @@ PVFS_error PVFS_imgmt_remove_dirent(
     PINT_init_sysint_credentials(sm_p->cred_p, credentials);
     sm_p->parent_ref = parent_ref;
     sm_p->u.mgmt_remove_dirent.entry = entry;
+    sm_p->hints = hints;
 
     gossip_debug(
         GOSSIP_CLIENT_DEBUG, "Trying to remove dirent %s under %llu,%d\n",
@@ -122,7 +124,8 @@ PVFS_error PVFS_imgmt_remove_dirent(
 PVFS_error PVFS_mgmt_remove_dirent(
     PVFS_object_ref parent_ref,
     char *entry,
-    PVFS_credentials *credentials)
+    PVFS_credentials *credentials,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_mgmt_op_id op_id;
@@ -131,7 +134,7 @@ PVFS_error PVFS_mgmt_remove_dirent(
                  "PVFS_mgmt_remove_dirent entered\n");
 
     ret = PVFS_imgmt_remove_dirent(
-        parent_ref, entry, credentials, &op_id, NULL);
+        parent_ref, entry, credentials, &op_id, hints, NULL);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_imgmt_remove_dirent call", ret);
@@ -177,7 +180,8 @@ static int mgmt_remove_dirent_setup_msgp
         *sm_p->cred_p,
         sm_p->parent_ref.fs_id,
         sm_p->parent_ref.handle,
-        sm_p->u.mgmt_remove_dirent.entry);
+        sm_p->u.mgmt_remove_dirent.entry,
+        sm_p->hints);
 
     gossip_debug(GOSSIP_REMOVE_DEBUG, "- doing MGMT_REMOVE_DIRENT %s "
                  "under %llu,%d\n", sm_p->u.mgmt_remove_dirent.entry,

Index: mgmt-remove-object.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/mgmt-remove-object.sm,v
diff -p -u -r1.9 -r1.9.6.1
--- mgmt-remove-object.sm	22 May 2006 21:50:13 -0000	1.9
+++ mgmt-remove-object.sm	19 Aug 2006 13:09:34 -0000	1.9.6.1
@@ -80,6 +80,7 @@ PVFS_error PVFS_imgmt_remove_object(
     PVFS_object_ref object_ref, 
     PVFS_credentials *credentials,
     PVFS_sys_op_id *op_id,
+    PVFS_hint *hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -104,6 +105,7 @@ PVFS_error PVFS_imgmt_remove_object(
     PINT_init_msgarray_params(&sm_p->msgarray_params, object_ref.fs_id);
     PINT_init_sysint_credentials(sm_p->cred_p, credentials);
     sm_p->object_ref = object_ref;
+    sm_p->hints = hints;
 
     gossip_debug(
         GOSSIP_CLIENT_DEBUG, "Trying to remove handle %llu,%d\n",
@@ -120,7 +122,8 @@ PVFS_error PVFS_imgmt_remove_object(
  */
 PVFS_error PVFS_mgmt_remove_object(
     PVFS_object_ref object_ref, 
-    PVFS_credentials *credentials)
+    PVFS_credentials *credentials,
+    PVFS_hint *hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -128,7 +131,7 @@ PVFS_error PVFS_mgmt_remove_object(
     gossip_debug(GOSSIP_CLIENT_DEBUG,
                  "PVFS_mgmt_remove_object entered\n");
 
-    ret = PVFS_imgmt_remove_object(object_ref, credentials, &op_id, NULL);
+    ret = PVFS_imgmt_remove_object(object_ref, credentials, &op_id, NULL, hints);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_imgmt_remove_object call", ret);
@@ -173,7 +176,8 @@ static int mgmt_remove_object_setup_msgp
         msg_p->req,
         *sm_p->cred_p,
         sm_p->object_ref.fs_id,
-        sm_p->object_ref.handle);
+        sm_p->object_ref.handle,
+        sm_p->hints);
 
     gossip_debug(GOSSIP_REMOVE_DEBUG, "- doing MGMT_REMOVE_OBJECT on "
                  "%llu,%d\n", llu(sm_p->object_ref.handle),

Index: mgmt-setparam-list.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/mgmt-setparam-list.sm,v
diff -p -u -r1.31 -r1.31.6.1
--- mgmt-setparam-list.sm	22 May 2006 21:50:13 -0000	1.31
+++ mgmt-setparam-list.sm	19 Aug 2006 13:09:34 -0000	1.31.6.1
@@ -80,6 +80,7 @@ PVFS_error PVFS_imgmt_setparam_list(
     int count,
     PVFS_error_details *details,
     PVFS_mgmt_op_id *op_id,
+    PVFS_hint *hints, 
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -144,7 +145,8 @@ PVFS_error PVFS_mgmt_setparam_list(
     PVFS_BMI_addr_t *addr_array,
     uint64_t *old_value_array,
     int count,
-    PVFS_error_details *details)
+    PVFS_error_details *details,
+    PVFS_hint *hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -153,7 +155,7 @@ PVFS_error PVFS_mgmt_setparam_list(
 
     ret = PVFS_imgmt_setparam_list(
         fs_id, credentials, param, value, addr_array, old_value_array,
-        count, details, &op_id, NULL);
+        count, details, &op_id, hints, NULL);
 
     if (ret)
     {
@@ -196,7 +198,8 @@ static int mgmt_setparam_list_setup_msgp
             *sm_p->cred_p,
             sm_p->u.setparam_list.fs_id,
             sm_p->u.setparam_list.param,
-            sm_p->u.setparam_list.value);
+            sm_p->u.setparam_list.value,
+            sm_p->hints);
         
         msg_p->fs_id = sm_p->u.setparam_list.fs_id;
         msg_p->handle = PVFS_HANDLE_NULL;

Index: mgmt-statfs-list.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/mgmt-statfs-list.sm,v
diff -p -u -r1.39 -r1.39.6.1
--- mgmt-statfs-list.sm	22 May 2006 21:50:13 -0000	1.39
+++ mgmt-statfs-list.sm	19 Aug 2006 13:09:34 -0000	1.39.6.1
@@ -96,6 +96,7 @@ PVFS_error PVFS_imgmt_statfs_list(
     int count,
     PVFS_error_details *details,
     PVFS_mgmt_op_id *op_id,
+    PVFS_hint * hints,
     void *user_ptr)
 {
     PINT_client_sm *sm_p = NULL;
@@ -122,6 +123,7 @@ PVFS_error PVFS_imgmt_statfs_list(
     sm_p->u.statfs_list.count = count;
     sm_p->u.statfs_list.addr_array = addr_array;
     sm_p->u.statfs_list.details = details;
+    sm_p->hints = hints;
 
     memset(sm_p->u.statfs_list.stat_array, 0,
            (count * sizeof(struct PVFS_mgmt_server_stat)));
@@ -148,7 +150,8 @@ PVFS_error PVFS_mgmt_statfs_list(
     struct PVFS_mgmt_server_stat *stat_array,
     PVFS_BMI_addr_t *addr_array,
     int count,
-    PVFS_error_details *details)
+    PVFS_error_details *details,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_mgmt_op_id op_id;
@@ -157,7 +160,7 @@ PVFS_error PVFS_mgmt_statfs_list(
 
     ret = PVFS_imgmt_statfs_list(
         fs_id, credentials, stat_array, addr_array, count,
-        details, &op_id, NULL);
+        details, &op_id, hints, NULL);
 
     if (ret)
     {
@@ -199,7 +202,8 @@ static int mgmt_statfs_list_setup_msgpai
 	PINT_SERVREQ_STATFS_FILL(
             msg_p->req,
             *sm_p->cred_p,
-            sm_p->u.statfs_list.fs_id);
+            sm_p->u.statfs_list.fs_id,
+            sm_p->hints);
 
 	msg_p->fs_id = sm_p->u.statfs_list.fs_id;
 	msg_p->handle = PVFS_HANDLE_NULL;

Index: pint-sysint-utils.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/pint-sysint-utils.c,v
diff -p -u -r1.32.38.2 -r1.32.38.3
--- pint-sysint-utils.c	24 Jul 2006 17:20:19 -0000	1.32.38.2
+++ pint-sysint-utils.c	19 Aug 2006 13:09:34 -0000	1.32.38.3
@@ -82,7 +82,7 @@ int PINT_lookup_parent(
     }
 
     ret = PVFS_sys_lookup(fs_id, buf, credentials,
-                          &resp_look, PVFS2_LOOKUP_LINK_FOLLOW);
+                          &resp_look, PVFS2_LOOKUP_LINK_FOLLOW, NULL);
     if (ret < 0)
     {
         gossip_err("Lookup failed on %s\n", buf);

Index: pint-sysint-utils.h
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/pint-sysint-utils.h,v
diff -p -u -r1.22 -r1.22.38.1
--- pint-sysint-utils.h	28 Jul 2004 14:32:32 -0000	1.22
+++ pint-sysint-utils.h	19 Aug 2006 13:09:34 -0000	1.22.38.1
@@ -77,7 +77,8 @@ int PINT_do_lookup (
     PVFS_object_ref *entry);
 int PINT_server_get_config(
     struct server_configuration_s *config,
-    struct PVFS_sys_mntent* mntent);
+    struct PVFS_sys_mntent* mntent,
+    PVFS_hint * hints);
 void PINT_release_pvfstab(void);
 
 struct server_configuration_s *PINT_get_server_config_struct(

Index: remove.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/remove.sm,v
diff -p -u -r1.20.6.1 -r1.20.6.2
--- remove.sm	18 Aug 2006 05:12:01 -0000	1.20.6.1
+++ remove.sm	19 Aug 2006 13:09:34 -0000	1.20.6.2
@@ -235,7 +235,8 @@ static int remove_datafile_remove_setup_
             msg_p->req,
             *sm_p->cred_p,
             sm_p->object_ref.fs_id,
-            attr->u.meta.dfile_array[i]);
+            attr->u.meta.dfile_array[i],
+            sm_p->hints);
 
 	msg_p->fs_id = sm_p->object_ref.fs_id;
 	msg_p->handle = attr->u.meta.dfile_array[i];
@@ -272,7 +273,8 @@ static int remove_object_remove_setup_ms
         msg_p->req,
         *sm_p->cred_p,
         sm_p->object_ref.fs_id,
-        sm_p->object_ref.handle);
+        sm_p->object_ref.handle,
+        sm_p->hints);
 
     msg_p->fs_id = sm_p->object_ref.fs_id;
     msg_p->handle = sm_p->object_ref.handle;

Index: server-get-config.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/server-get-config.sm,v
diff -p -u -r1.21 -r1.21.6.1
--- server-get-config.sm	22 May 2006 21:50:13 -0000	1.21
+++ server-get-config.sm	19 Aug 2006 13:09:34 -0000	1.21.6.1
@@ -102,7 +102,9 @@ machine pvfs2_server_get_config_sm(
 */
 int PINT_server_get_config(
     struct server_configuration_s *config,
-    struct PVFS_sys_mntent* mntent_p)
+    struct PVFS_sys_mntent* mntent_p,
+    PVFS_hint *hints
+    )
 {
     int ret = -PVFS_EINVAL;
     PINT_client_sm *sm_p = NULL;
@@ -145,6 +147,8 @@ int PINT_server_get_config(
     PINT_init_sysint_credentials(sm_p->cred_p, &creds);
     sm_p->u.get_config.mntent = mntent_p;
     sm_p->u.get_config.config = config;
+    
+    sm_p->hints = hints;
 
     ret = PINT_client_state_machine_post(
         sm_p, PVFS_SERVER_GET_CONFIG, &op_id, NULL);
@@ -271,7 +275,7 @@ static int server_get_config_setup_msgpa
         return ret;
     }
 
-    PINT_SERVREQ_GETCONFIG_FILL(msg_p->req, *sm_p->cred_p);
+    PINT_SERVREQ_GETCONFIG_FILL(msg_p->req, *sm_p->cred_p, sm_p->hints);
 
     msg_p->fs_id = PVFS_FS_ID_NULL;
     msg_p->handle = PVFS_HANDLE_NULL;

Index: sys-create.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-create.sm,v
diff -p -u -r1.92.4.1 -r1.92.4.2
--- sys-create.sm	18 Aug 2006 05:12:01 -0000	1.92.4.1
+++ sys-create.sm	19 Aug 2006 13:09:34 -0000	1.92.4.2
@@ -13,6 +13,7 @@
 #include <string.h>
 #include <assert.h>
 
+#include "pvfs2-hint.h"
 #include "client-state-machine.h"
 #include "pvfs2-debug.h"
 #include "pvfs2-dist-simple-stripe.h"
@@ -231,6 +232,7 @@ PVFS_error PVFS_isys_create(
     PVFS_sys_dist *dist,
     PVFS_sysresp_create *resp,
     PVFS_sys_op_id *op_id,
+    PVFS_hint * hints,    
     void *user_ptr)
 {
     int num_dfiles_req = 0;
@@ -284,6 +286,7 @@ PVFS_error PVFS_isys_create(
     PVFS_util_copy_sys_attr(&sm_p->u.create.sys_attr, &attr);
     sm_p->u.create.stored_error_code = 0;
     sm_p->u.create.retry_count = 0;
+    sm_p->hints = hints;
 
     sm_p->object_ref = parent_ref;
 
@@ -366,7 +369,9 @@ PVFS_error PVFS_sys_create(
     PVFS_sys_attr attr,
     PVFS_credentials *credentials,
     PVFS_sys_dist *dist,
-    PVFS_sysresp_create *resp)
+    PVFS_sysresp_create *resp,
+    PVFS_hint * hints
+    )
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -374,7 +379,7 @@ PVFS_error PVFS_sys_create(
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_create entered\n");
 
     ret = PVFS_isys_create(object_name, parent_ref, attr, credentials,
-                           dist, resp, &op_id, NULL);
+                           dist, resp, &op_id, hints, NULL);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_isys_create call", ret);
@@ -592,7 +597,8 @@ static int create_dspace_create_setup_ms
         *sm_p->cred_p,
         sm_p->object_ref.fs_id,
         PVFS_TYPE_METAFILE,
-        meta_handle_extent_array);
+        meta_handle_extent_array,
+        sm_p->hints);
 
     msg_p->fs_id = sm_p->object_ref.fs_id;
     msg_p->handle = meta_handle_extent_array.extent_array[0].first;
@@ -698,7 +704,8 @@ static int create_datafiles_setup_msgpai
             *sm_p->cred_p,
             sm_p->object_ref.fs_id,
             PVFS_TYPE_DATAFILE,
-            sm_p->u.create.io_handle_extent_array[i]);
+            sm_p->u.create.io_handle_extent_array[i],
+            sm_p->hints);
 
         gossip_debug(GOSSIP_CLIENT_DEBUG,  "posting datafile[%d] create "
                      "with extents %llu-%llu\n", i,
@@ -754,7 +761,9 @@ static int create_setattr_setup_msgpair(
         sm_p->u.create.metafile_handle,
         PVFS_TYPE_METAFILE,
         sm_p->u.create.sys_attr,
-        PVFS_ATTR_META_ALL);
+        PVFS_ATTR_META_ALL,
+        sm_p->hints
+        );
 
     msg_p->req.u.setattr.attr.u.meta.dfile_array =
         sm_p->u.create.datafile_handles;
@@ -812,7 +821,8 @@ static int create_crdirent_setup_msgpair
         sm_p->u.create.object_name,
         sm_p->u.create.metafile_handle,
         sm_p->object_ref.handle,
-        sm_p->object_ref.fs_id);
+        sm_p->object_ref.fs_id,
+        sm_p->hints);
 
     msg_p->fs_id = sm_p->object_ref.fs_id;
     msg_p->handle = sm_p->object_ref.handle;
@@ -922,7 +932,8 @@ static int create_delete_handles_setup_m
                 msg_p->req,
                 *sm_p->cred_p,
                 sm_p->object_ref.fs_id,
-                sm_p->u.create.metafile_handle);
+                sm_p->u.create.metafile_handle,
+                sm_p->hints);
 
             msg_p->fs_id = sm_p->object_ref.fs_id;
             msg_p->handle = sm_p->u.create.metafile_handle;
@@ -939,7 +950,8 @@ static int create_delete_handles_setup_m
                 msg_p->req,
                 *sm_p->cred_p,
                 sm_p->object_ref.fs_id,
-                sm_p->u.create.datafile_handles[i]);
+                sm_p->u.create.datafile_handles[i],
+                sm_p->hints);
 
             msg_p->fs_id = sm_p->object_ref.fs_id;
             msg_p->handle = sm_p->u.create.datafile_handles[i];

Index: sys-del-eattr.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-del-eattr.sm,v
diff -p -u -r1.5 -r1.5.8.1
--- sys-del-eattr.sm	22 May 2006 21:50:13 -0000	1.5
+++ sys-del-eattr.sm	19 Aug 2006 13:09:34 -0000	1.5.8.1
@@ -62,6 +62,7 @@ PVFS_error PVFS_isys_deleattr(
         PVFS_credentials *credentials,
         PVFS_ds_keyval *key_p,
         PVFS_sys_op_id *op_id,
+        PVFS_hint *hints,
         void *user_ptr)
 {
     int ret = -PVFS_EINVAL;
@@ -88,7 +89,8 @@ PVFS_error PVFS_isys_deleattr(
     sm_p->u.deleattr.key_p = key_p;
     sm_p->error_code = 0;
     sm_p->object_ref = ref;
-
+    sm_p->hints = hints;
+    
     return PINT_client_state_machine_post(
             sm_p, PVFS_SYS_DELEATTR, op_id, user_ptr);
 }
@@ -96,7 +98,8 @@ PVFS_error PVFS_isys_deleattr(
 PVFS_error PVFS_sys_deleattr(
         PVFS_object_ref ref,
         PVFS_credentials *credentials,
-        PVFS_ds_keyval *key_p)
+        PVFS_ds_keyval *key_p, 
+        PVFS_hint *hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -104,7 +107,7 @@ PVFS_error PVFS_sys_deleattr(
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_deleattr entered\n");
 
     ret = PVFS_isys_deleattr(ref, credentials,
-            key_p, &op_id, NULL);
+            key_p, &op_id, hints, NULL);
 
     if (ret)
     {
@@ -138,7 +141,8 @@ static int del_eattr_setup_msgpair(PINT_
             (*sm_p->cred_p),
             sm_p->object_ref.fs_id,
             sm_p->object_ref.handle,
-            (*sm_p->u.deleattr.key_p)
+            (*sm_p->u.deleattr.key_p),
+            sm_p->hints
             );
 
     sm_p->msgarray = &(sm_p->msgpair);

Index: sys-flush.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-flush.sm,v
diff -p -u -r1.36 -r1.36.6.1
--- sys-flush.sm	22 May 2006 21:50:13 -0000	1.36
+++ sys-flush.sm	19 Aug 2006 13:09:34 -0000	1.36.6.1
@@ -84,6 +84,7 @@ PVFS_error PVFS_isys_flush(
     PVFS_object_ref ref,
     PVFS_credentials *credentials,
     PVFS_sys_op_id *op_id,
+    PVFS_hint *hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -108,6 +109,7 @@ PVFS_error PVFS_isys_flush(
     PINT_init_msgarray_params(&sm_p->msgarray_params, ref.fs_id);
     PINT_init_sysint_credentials(sm_p->cred_p, credentials);
     sm_p->object_ref = ref;
+    sm_p->hints = hints;
 
     /* NOTE: This state machine previously multiplied the default job timeout
      * by five to allow for potentially long sync delays.  We instead now set
@@ -130,14 +132,15 @@ PVFS_error PVFS_isys_flush(
  */
 PVFS_error PVFS_sys_flush(
     PVFS_object_ref ref,
-    PVFS_credentials *credentials)
+    PVFS_credentials *credentials,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
 
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_flush entered\n");
 
-    ret = PVFS_isys_flush(ref, credentials, &op_id, NULL);
+    ret = PVFS_isys_flush(ref, credentials, &op_id, hints, NULL);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_isys_flush call", ret);
@@ -199,7 +202,8 @@ static int flush_datafile_setup_msgpaira
             PINT_SERVREQ_FLUSH_FILL(msg_p->req,
                                     *sm_p->cred_p,
                                     sm_p->object_ref.fs_id,
-                                    attr->u.meta.dfile_array[i]);
+                                    attr->u.meta.dfile_array[i],
+                                    sm_p->hints);
 
             msg_p->fs_id = sm_p->object_ref.fs_id;
             msg_p->handle = attr->u.meta.dfile_array[i];
@@ -217,7 +221,8 @@ static int flush_datafile_setup_msgpaira
             PINT_SERVREQ_FLUSH_FILL(msg_p->req,
                                     *sm_p->cred_p,
                                     sm_p->object_ref.fs_id,
-                                    sm_p->object_ref.handle);
+                                    sm_p->object_ref.handle,
+                                    sm_p->hints);
 
             msg_p->fs_id = sm_p->object_ref.fs_id;
             msg_p->handle = sm_p->object_ref.handle;

Index: sys-get-eattr.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-get-eattr.sm,v
diff -p -u -r1.6 -r1.6.6.1
--- sys-get-eattr.sm	16 Jun 2006 21:01:11 -0000	1.6
+++ sys-get-eattr.sm	19 Aug 2006 13:09:34 -0000	1.6.6.1
@@ -64,6 +64,7 @@ PVFS_error PVFS_isys_geteattr_list(
         PVFS_ds_keyval *key_array,
         PVFS_sysresp_geteattr *resp_p,
         PVFS_sys_op_id *op_id,
+        PVFS_hint *hints,
         void *user_ptr)
 {
     int ret = -PVFS_EINVAL;
@@ -93,6 +94,7 @@ PVFS_error PVFS_isys_geteattr_list(
     sm_p->u.geteattr.resp_p = resp_p;
     sm_p->error_code = 0;
     sm_p->object_ref = ref;
+    sm_p->hints = hints;
 
     return PINT_client_state_machine_post(
             sm_p, PVFS_SYS_GETEATTR, op_id, user_ptr);
@@ -103,7 +105,8 @@ PVFS_error PVFS_sys_geteattr_list(
         PVFS_credentials *credentials,
         int32_t nkey,
         PVFS_ds_keyval *key_array,
-        PVFS_sysresp_geteattr *resp_p)
+        PVFS_sysresp_geteattr *resp_p,
+        PVFS_hint *hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -111,7 +114,7 @@ PVFS_error PVFS_sys_geteattr_list(
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_geteattr entered\n");
 
     ret = PVFS_isys_geteattr_list(ref, credentials,
-            nkey, key_array, resp_p, &op_id, NULL);
+            nkey, key_array, resp_p, &op_id, hints, NULL);
 
     if (ret)
     {
@@ -136,13 +139,14 @@ PVFS_error PVFS_sys_geteattr(
         PVFS_object_ref ref,
         PVFS_credentials *credentials,
         PVFS_ds_keyval *key_p,
-        PVFS_ds_keyval *val_p)
+        PVFS_ds_keyval *val_p,
+        PVFS_hint *hints)
 {
     PVFS_sysresp_geteattr resp_p;
     PVFS_error tmp_err;
     resp_p.val_array = val_p;
     resp_p.err_array = &tmp_err;
-    return PVFS_sys_geteattr_list(ref, credentials, 1, key_p, &resp_p);
+    return PVFS_sys_geteattr_list(ref, credentials, 1, key_p, &resp_p, hints);
 }
 
 static int get_eattr_setup_msgpair(PINT_client_sm *sm_p,
@@ -172,8 +176,8 @@ static int get_eattr_setup_msgpair(PINT_
             sm_p->object_ref.handle,
             sm_p->u.geteattr.nkey,
             sm_p->u.geteattr.key_array,
-            sm_p->u.geteattr.size_array
-            );
+            sm_p->u.geteattr.size_array,
+            sm_p->hints);
 
     sm_p->msgarray = &(sm_p->msgpair);
     sm_p->msgarray_count = 1;

Index: sys-getattr.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-getattr.sm,v
diff -p -u -r1.99 -r1.99.4.1
--- sys-getattr.sm	16 Jun 2006 21:01:11 -0000	1.99
+++ sys-getattr.sm	19 Aug 2006 13:09:34 -0000	1.99.4.1
@@ -200,6 +200,7 @@ PVFS_error PVFS_isys_getattr(
     PVFS_credentials *credentials,
     PVFS_sysresp_getattr *resp_p,
     PVFS_sys_op_id *op_id,
+    PVFS_hint *hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -232,6 +233,7 @@ PVFS_error PVFS_isys_getattr(
     sm_p->error_code = 0;
     sm_p->object_ref = ref;
     sm_p->u.getattr.getattr_resp_p = resp_p;
+    sm_p->hints = hints;
     
     PINT_SM_GETATTR_STATE_FILL(
         sm_p->getattr,
@@ -251,7 +253,8 @@ PVFS_error PVFS_sys_getattr(
     PVFS_object_ref ref,
     uint32_t attrmask, 
     PVFS_credentials *credentials,
-    PVFS_sysresp_getattr *resp_p)
+    PVFS_sysresp_getattr *resp_p,
+    PVFS_hint *hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -259,7 +262,7 @@ PVFS_error PVFS_sys_getattr(
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_getattr entered\n");
 
     ret = PVFS_isys_getattr(ref, attrmask, credentials,
-                            resp_p, &op_id, NULL);
+                            resp_p, &op_id, hints, NULL);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_isys_getattr call", ret);
@@ -481,7 +484,8 @@ static int getattr_object_getattr_setup_
         *sm_p->cred_p,
         object_ref.fs_id,
         object_ref.handle,
-        sm_p->getattr.req_attrmask);
+        sm_p->getattr.req_attrmask,
+        sm_p->hints);
     
     sm_p->msgpair.fs_id = object_ref.fs_id;
     sm_p->msgpair.handle = object_ref.handle;
@@ -696,7 +700,8 @@ static int getattr_datafile_getattr_setu
             *sm_p->cred_p,
             sm_p->getattr.object_ref.fs_id,
             attr->u.meta.dfile_array[i],
-            PVFS_ATTR_DATA_SIZE);
+            PVFS_ATTR_DATA_SIZE,
+            sm_p->hints);
 
         msg_p->fs_id = sm_p->getattr.object_ref.fs_id;
         msg_p->handle = attr->u.meta.dfile_array[i];

Index: sys-io.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-io.sm,v
diff -p -u -r1.146.4.1 -r1.146.4.2
--- sys-io.sm	18 Aug 2006 05:12:01 -0000	1.146.4.1
+++ sys-io.sm	19 Aug 2006 13:09:34 -0000	1.146.4.2
@@ -258,6 +258,7 @@ PVFS_error PVFS_isys_io(
     PVFS_sysresp_io *resp_p,
     enum PVFS_io_type io_type,
     PVFS_sys_op_id *op_id,
+    PVFS_hint *hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -326,6 +327,7 @@ PVFS_error PVFS_isys_io(
     sm_p->u.io.total_size = 0;
     sm_p->u.io.small_io = 0;
     sm_p->object_ref = ref;
+    sm_p->hints = hints;
 
     return PINT_client_state_machine_post(
         sm_p, PVFS_SYS_IO, op_id, user_ptr);
@@ -343,7 +345,8 @@ PVFS_error PVFS_sys_io(
     PVFS_Request mem_req,
     PVFS_credentials *credentials,
     PVFS_sysresp_io *resp_p,
-    enum PVFS_io_type io_type)
+    enum PVFS_io_type io_type,
+    PVFS_hint *hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -351,7 +354,7 @@ PVFS_error PVFS_sys_io(
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_io entered\n");
 
     ret = PVFS_isys_io(ref, file_req, file_req_offset, buffer, mem_req,
-                       credentials, resp_p, io_type, &op_id, NULL);
+                       credentials, resp_p, io_type, &op_id, hints, NULL);
     if (ret == 1)
         return 0;
     else if (ret < 0)
@@ -561,7 +564,8 @@ static int io_datafile_setup_msgpairs(PI
             attr->u.meta.dist,
             sm_p->u.io.file_req,
             sm_p->u.io.file_req_offset,
-            PINT_REQUEST_TOTAL_BYTES(sm_p->u.io.mem_req));
+            PINT_REQUEST_TOTAL_BYTES(sm_p->u.io.mem_req),
+            sm_p->hints);
     }
 
     js_p->error_code = 0;

Index: sys-list-eattr.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-list-eattr.sm,v
diff -p -u -r1.3 -r1.3.10.1
--- sys-list-eattr.sm	27 May 2006 23:44:41 -0000	1.3
+++ sys-list-eattr.sm	19 Aug 2006 13:09:34 -0000	1.3.10.1
@@ -64,6 +64,7 @@ PVFS_error PVFS_isys_listeattr(
         PVFS_credentials *credentials,
         PVFS_sysresp_listeattr *resp_p,
         PVFS_sys_op_id *op_id,
+        PVFS_hint *hints,
         void *user_ptr)
 {
     int ret = -PVFS_EINVAL;
@@ -93,6 +94,7 @@ PVFS_error PVFS_isys_listeattr(
     sm_p->u.listeattr.pos_token = token;
     sm_p->error_code = 0;
     sm_p->object_ref = ref;
+    sm_p->hints = hints;
 
     return PINT_client_state_machine_post(
             sm_p, PVFS_SYS_LISTEATTR, op_id, user_ptr);
@@ -103,7 +105,8 @@ PVFS_error PVFS_sys_listeattr(
         PVFS_ds_position token,
         int32_t nkey,
         PVFS_credentials *credentials,
-        PVFS_sysresp_listeattr *resp_p)
+        PVFS_sysresp_listeattr *resp_p,
+        PVFS_hint *hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -111,7 +114,7 @@ PVFS_error PVFS_sys_listeattr(
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_listeattr entered\n");
 
     ret = PVFS_isys_listeattr(ref, token, nkey, credentials,
-            resp_p, &op_id, NULL);
+            resp_p, &op_id, hints, NULL);
 
     if (ret)
     {
@@ -157,7 +160,8 @@ static int list_eattr_setup_msgpair(PINT
             sm_p->object_ref.handle,
             sm_p->u.listeattr.pos_token,
             sm_p->u.listeattr.nkey,
-            sm_p->u.listeattr.size_array
+            sm_p->u.listeattr.size_array,
+            sm_p->hints
             );
 
     sm_p->msgarray = &(sm_p->msgpair);

Index: sys-lookup.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-lookup.sm,v
diff -p -u -r1.62.6.1 -r1.62.6.2
--- sys-lookup.sm	18 Aug 2006 05:12:01 -0000	1.62.6.1
+++ sys-lookup.sm	19 Aug 2006 13:09:34 -0000	1.62.6.2
@@ -450,6 +450,7 @@ PVFS_error PVFS_isys_ref_lookup(
     PVFS_sysresp_lookup *resp,
     int32_t follow_link,
     PVFS_sys_op_id *op_id,
+    PVFS_hint *hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -476,6 +477,7 @@ PVFS_error PVFS_isys_ref_lookup(
     sm_p->u.lookup.lookup_resp = resp;
     sm_p->u.lookup.follow_link = follow_link;
     sm_p->u.lookup.current_context = 0;
+    sm_p->hints = hints;
 
     ret = initialize_context(sm_p->u.lookup.contexts,
                              sm_p->u.lookup.current_context,
@@ -505,7 +507,8 @@ PVFS_error PVFS_sys_ref_lookup(
     PVFS_object_ref parent,
     PVFS_credentials *credentials,
     PVFS_sysresp_lookup *resp,
-    int32_t follow_link)
+    int32_t follow_link,
+    PVFS_hint *hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -514,7 +517,7 @@ PVFS_error PVFS_sys_ref_lookup(
 
     ret = PVFS_isys_ref_lookup(
         fs_id, relative_pathname, parent, credentials, resp,
-        follow_link, &op_id, resp);
+        follow_link, &op_id, hints, resp);
 
     if (ret)
     {
@@ -541,7 +544,8 @@ PVFS_error PVFS_sys_lookup(
     PVFS_fs_id fs_id, char *name,
     PVFS_credentials *credentials,
     PVFS_sysresp_lookup *resp,
-    int32_t follow_link)
+    int32_t follow_link,
+    PVFS_hint *hints)
 {
     PVFS_error ret = -PVFS_EINVAL;
     PVFS_object_ref parent;
@@ -576,7 +580,7 @@ PVFS_error PVFS_sys_lookup(
             */
             char *path = ((name[0] == '/') ? &name[1] : name);
             ret = PVFS_sys_ref_lookup(
-                fs_id, path, parent, credentials, resp, follow_link);
+                fs_id, path, parent, credentials, resp, follow_link, hints);
         }
     }
     return ret;
@@ -643,7 +647,8 @@ static int lookup_segment_lookup_setup_m
         seg_to_lookup,
         cur_seg->seg_starting_refn.fs_id,
         cur_seg->seg_starting_refn.handle,
-        PVFS_ATTR_COMMON_ALL);
+        PVFS_ATTR_COMMON_ALL,
+        sm_p->hints);
 
     gossip_debug(
         GOSSIP_LOOKUP_DEBUG, "Looking up segment %s under handle %llu\n",

Index: sys-mkdir.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-mkdir.sm,v
diff -p -u -r1.54.4.1 -r1.54.4.2
--- sys-mkdir.sm	18 Aug 2006 05:12:01 -0000	1.54.4.1
+++ sys-mkdir.sm	19 Aug 2006 13:09:34 -0000	1.54.4.2
@@ -196,6 +196,7 @@ PVFS_error PVFS_isys_mkdir(
     PVFS_credentials *credentials,
     PVFS_sysresp_mkdir *resp,
     PVFS_sys_op_id *op_id,
+    PVFS_hint *hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -238,6 +239,7 @@ PVFS_error PVFS_isys_mkdir(
     sm_p->u.mkdir.mkdir_resp = resp;
     sm_p->u.mkdir.stored_error_code = 0;
     sm_p->object_ref = parent_ref;
+    sm_p->hints = hints;
 
     gossip_debug(GOSSIP_CLIENT_DEBUG, "Creating directory named %s "
                  "under parent handle %llu on fs %d\n", object_name,
@@ -254,7 +256,8 @@ PVFS_error PVFS_sys_mkdir(
     PVFS_object_ref parent_ref,
     PVFS_sys_attr attr,
     PVFS_credentials *credentials,
-    PVFS_sysresp_mkdir *resp)
+    PVFS_sysresp_mkdir *resp,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -262,7 +265,7 @@ PVFS_error PVFS_sys_mkdir(
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_mkdir entered\n");
 
     ret = PVFS_isys_mkdir(object_name, parent_ref, attr,
-                          credentials, resp, &op_id, NULL);
+                          credentials, resp, &op_id, hints, NULL);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_isys_mkdir call", ret);
@@ -401,7 +404,8 @@ static int mkdir_msg_setup_msgpair(PINT_
         *sm_p->cred_p,
         sm_p->object_ref.fs_id,
         meta_handle_extent_array,
-        sm_p->u.mkdir.sys_attr);
+        sm_p->u.mkdir.sys_attr,
+        sm_p->hints);
 
     msg_p->fs_id = sm_p->object_ref.fs_id;
     msg_p->handle = meta_handle_extent_array.extent_array[0].first;
@@ -446,7 +450,9 @@ static int mkdir_crdirent_setup_msgpair(
         sm_p->u.mkdir.object_name,
         sm_p->u.mkdir.metafile_handle,
         sm_p->object_ref.handle,
-        sm_p->object_ref.fs_id);
+        sm_p->object_ref.fs_id,
+        sm_p->hints);
+
 
     msg_p->fs_id = sm_p->object_ref.fs_id;
     msg_p->handle = sm_p->object_ref.handle;
@@ -505,7 +511,8 @@ static int mkdir_delete_handle_setup_msg
         msg_p->req,
         *sm_p->cred_p,
         sm_p->object_ref.fs_id,
-        sm_p->u.mkdir.metafile_handle);
+        sm_p->u.mkdir.metafile_handle,
+        sm_p->hints);
 
     msg_p->fs_id = sm_p->object_ref.fs_id;
     msg_p->handle = sm_p->u.mkdir.metafile_handle;
@@ -720,8 +727,8 @@ static int mkdir_seteattr_setup_msgpair(
             0,
             eattr_count,
             sm_p->u.mkdir.key_array,
-            sm_p->u.mkdir.val_array
-            );
+            sm_p->u.mkdir.val_array,
+            sm_p->hints);
 
     sm_p->msgarray = &(sm_p->msgpair);
     sm_p->msgarray_count = 1;

Index: sys-readdir.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-readdir.sm,v
diff -p -u -r1.44.6.1 -r1.44.6.2
--- sys-readdir.sm	18 Aug 2006 05:12:01 -0000	1.44.6.1
+++ sys-readdir.sm	19 Aug 2006 13:09:34 -0000	1.44.6.2
@@ -105,6 +105,7 @@ PVFS_error PVFS_isys_readdir(
     PVFS_credentials *credentials,
     PVFS_sysresp_readdir *resp,
     PVFS_sys_op_id *op_id,
+    PVFS_hint *hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -140,6 +141,7 @@ PVFS_error PVFS_isys_readdir(
     sm_p->u.readdir.dirent_limit = pvfs_dirent_incount;
     sm_p->u.readdir.readdir_resp = resp;
     sm_p->object_ref = ref;
+    sm_p->hints = hints;
 
     gossip_debug(GOSSIP_READDIR_DEBUG, "Doing readdir on handle "
                  "%llu on fs %d\n", llu(ref.handle), ref.fs_id);
@@ -160,7 +162,8 @@ PVFS_error PVFS_sys_readdir(
     PVFS_ds_position token, 
     int32_t pvfs_dirent_incount,
     PVFS_credentials *credentials,
-    PVFS_sysresp_readdir *resp)
+    PVFS_sysresp_readdir *resp,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -168,7 +171,7 @@ PVFS_error PVFS_sys_readdir(
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_readdir entered\n");
 
     ret = PVFS_isys_readdir(ref, token, pvfs_dirent_incount,
-                            credentials, resp, &op_id, NULL);
+                            credentials, resp, &op_id, hints, NULL);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_isys_readdir call", ret);
@@ -239,7 +242,8 @@ static int readdir_msg_setup_msgpair(PIN
         sm_p->object_ref.fs_id,
         sm_p->object_ref.handle,
         sm_p->u.readdir.pos_token,
-        sm_p->u.readdir.dirent_limit);
+        sm_p->u.readdir.dirent_limit,
+        sm_p->hints);
 
     msg_p->fs_id = sm_p->object_ref.fs_id;
     msg_p->handle = sm_p->object_ref.handle;

Index: sys-remove.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-remove.sm,v
diff -p -u -r1.97.4.1 -r1.97.4.2
--- sys-remove.sm	18 Aug 2006 05:12:01 -0000	1.97.4.1
+++ sys-remove.sm	19 Aug 2006 13:09:35 -0000	1.97.4.2
@@ -184,6 +184,7 @@ PVFS_error PVFS_isys_remove(
     PVFS_object_ref parent_ref, 
     PVFS_credentials *credentials,
     PVFS_sys_op_id *op_id,
+    PVFS_hint *hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -211,6 +212,7 @@ PVFS_error PVFS_isys_remove(
     sm_p->u.remove.object_name = object_name;
     sm_p->parent_ref  = parent_ref;
     sm_p->u.remove.stored_error_code = 0;
+    sm_p->hints = hints;
 
     gossip_debug(
         GOSSIP_CLIENT_DEBUG, "Trying to remove entry %s under %llu,%d\n",
@@ -231,7 +233,8 @@ PVFS_error PVFS_isys_remove(
 PVFS_error PVFS_sys_remove(
     char *object_name,
     PVFS_object_ref parent_ref, 
-    PVFS_credentials *credentials)
+    PVFS_credentials *credentials,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -239,7 +242,7 @@ PVFS_error PVFS_sys_remove(
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_remove entered\n");
 
     ret = PVFS_isys_remove(object_name, parent_ref,
-                           credentials, &op_id, NULL);
+                           credentials, &op_id, hints, NULL);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_isys_remove call", ret);
@@ -292,7 +295,8 @@ static int remove_rmdirent_setup_msgpair
         *sm_p->cred_p,
         sm_p->parent_ref.fs_id,
         sm_p->parent_ref.handle,
-        sm_p->u.remove.object_name);
+        sm_p->u.remove.object_name,
+        sm_p->hints);
 
     gossip_debug(GOSSIP_REMOVE_DEBUG, "- doing RMDIRENT on %s "
                  "under %llu,%d\n", sm_p->u.remove.object_name,
@@ -336,7 +340,8 @@ static int remove_crdirent_setup_msgpair
         sm_p->u.remove.object_name,
         sm_p->object_ref.handle,
         sm_p->parent_ref.handle,
-        sm_p->parent_ref.fs_id);
+        sm_p->parent_ref.fs_id,
+        sm_p->hints);
 
     gossip_debug(GOSSIP_REMOVE_DEBUG, "- doing CRDIRENT of %s (%llu,%d) "
                  "under %llu,%d\n", sm_p->u.remove.object_name,

Index: sys-rename.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-rename.sm,v
diff -p -u -r1.46.6.1 -r1.46.6.2
--- sys-rename.sm	18 Aug 2006 05:12:02 -0000	1.46.6.1
+++ sys-rename.sm	19 Aug 2006 13:09:35 -0000	1.46.6.2
@@ -279,6 +279,7 @@ PVFS_error PVFS_isys_rename(
     PVFS_object_ref new_parent_ref,
     PVFS_credentials *credentials,
     PVFS_sys_op_id *op_id,
+    PVFS_hint *hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -337,6 +338,7 @@ PVFS_error PVFS_isys_rename(
     sm_p->u.rename.rmdirent_index = 0;
     sm_p->u.rename.target_dirent_exists = 0;
     sm_p->u.rename.stored_error_code = 0;
+    sm_p->hints = hints;
 
     gossip_debug(
         GOSSIP_CLIENT_DEBUG, "Renaming file named %s (under [%llu,%d]\n\t"
@@ -362,7 +364,8 @@ PVFS_error PVFS_sys_rename(
     PVFS_object_ref old_parent_ref,
     char *new_entry,
     PVFS_object_ref new_parent_ref,
-    PVFS_credentials *credentials)
+    PVFS_credentials *credentials,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -370,7 +373,7 @@ PVFS_error PVFS_sys_rename(
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_rename entered\n");
 
     ret = PVFS_isys_rename(old_entry, old_parent_ref, new_entry,
-                           new_parent_ref, credentials, &op_id, NULL);
+                           new_parent_ref, credentials, &op_id, hints, NULL);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_isys_rename call", ret);
@@ -589,7 +592,8 @@ static int rename_lookups_setup_msgpair_
             sm_p->u.rename.entries[i],
             sm_p->u.rename.parent_refns[i].fs_id,
             sm_p->u.rename.parent_refns[i].handle,
-            PVFS_ATTR_COMMON_ALL);
+            PVFS_ATTR_COMMON_ALL,
+            sm_p->hints);
 
         /* fill in msgpair structure components */
         msg_p->fs_id = sm_p->u.rename.parent_refns[i].fs_id;
@@ -651,7 +655,8 @@ static int rename_crdirent_setup_msgpair
         sm_p->u.rename.entries[1],
         sm_p->u.rename.refns[0].handle,
         sm_p->u.rename.parent_refns[1].handle,
-        sm_p->u.rename.parent_refns[1].fs_id);
+        sm_p->u.rename.parent_refns[1].fs_id,
+        sm_p->hints);
 
     msg_p->fs_id = sm_p->u.rename.parent_refns[1].fs_id;
     msg_p->handle = sm_p->u.rename.parent_refns[1].handle;
@@ -701,7 +706,8 @@ static int rename_rmdirent_setup_msgpair
         *sm_p->cred_p,
         sm_p->u.rename.parent_refns[sm_p->u.rename.rmdirent_index].fs_id,
         sm_p->u.rename.parent_refns[sm_p->u.rename.rmdirent_index].handle,
-        sm_p->u.rename.entries[sm_p->u.rename.rmdirent_index]);
+        sm_p->u.rename.entries[sm_p->u.rename.rmdirent_index],
+        sm_p->hints);
 
     msg_p->fs_id = sm_p->u.rename.parent_refns[
         sm_p->u.rename.rmdirent_index].fs_id;
@@ -830,7 +836,8 @@ static int rename_chdirent_setup_msgpair
         sm_p->u.rename.parent_refns[1].fs_id,
         sm_p->u.rename.parent_refns[1].handle,
         sm_p->u.rename.refns[0].handle,
-        sm_p->u.rename.entries[1]);
+        sm_p->u.rename.entries[1],
+        sm_p->hints);
 
     msg_p->fs_id = sm_p->u.rename.parent_refns[1].fs_id;
     msg_p->handle = sm_p->u.rename.parent_refns[1].handle;

Index: sys-set-eattr.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-set-eattr.sm,v
diff -p -u -r1.5 -r1.5.8.1
--- sys-set-eattr.sm	22 May 2006 21:50:13 -0000	1.5
+++ sys-set-eattr.sm	19 Aug 2006 13:09:35 -0000	1.5.8.1
@@ -65,6 +65,7 @@ PVFS_error PVFS_isys_seteattr_list(
         PVFS_ds_keyval *val_array,
         int32_t flags,
         PVFS_sys_op_id *op_id,
+        PVFS_hint *hints,
         void *user_ptr)
 {
     int ret = -PVFS_EINVAL;
@@ -95,6 +96,7 @@ PVFS_error PVFS_isys_seteattr_list(
     sm_p->u.seteattr.flags = flags;
     sm_p->error_code = 0;
     sm_p->object_ref = ref;
+    sm_p->hints = hints;
 
     return PINT_client_state_machine_post(
             sm_p, PVFS_SYS_SETEATTR, op_id, user_ptr);
@@ -106,7 +108,8 @@ PVFS_error PVFS_sys_seteattr_list(
         int32_t nkey,
         PVFS_ds_keyval *key_array,
         PVFS_ds_keyval *val_array,
-        int32_t flags)
+        int32_t flags,
+        PVFS_hint *hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -114,7 +117,7 @@ PVFS_error PVFS_sys_seteattr_list(
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_seteattr entered\n");
 
     ret = PVFS_isys_seteattr_list(ref, credentials,
-            nkey, key_array, val_array, flags, &op_id, NULL);
+            nkey, key_array, val_array, flags, &op_id, hints, NULL);
 
     if (ret)
     {
@@ -140,9 +143,10 @@ PVFS_error PVFS_sys_seteattr(
         PVFS_credentials *credentials,
         PVFS_ds_keyval *key_p,
         PVFS_ds_keyval *val_p,
-        int32_t flags)
+        int32_t flags,
+        PVFS_hint *hints)
 {
-    return PVFS_sys_seteattr_list(ref, credentials, 1, key_p, val_p, flags);
+    return PVFS_sys_seteattr_list(ref, credentials, 1, key_p, val_p, flags, hints);
 }
 
 
@@ -162,7 +166,8 @@ static int set_eattr_setup_msgpair(PINT_
             sm_p->u.seteattr.flags,
             sm_p->u.seteattr.nkey,
             sm_p->u.seteattr.key_array,
-            sm_p->u.seteattr.val_array
+            sm_p->u.seteattr.val_array,
+            sm_p->hints
             );
 
     sm_p->msgarray = &(sm_p->msgpair);

Index: sys-setattr.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-setattr.sm,v
diff -p -u -r1.45.6.1 -r1.45.6.2
--- sys-setattr.sm	18 Aug 2006 05:12:02 -0000	1.45.6.1
+++ sys-setattr.sm	19 Aug 2006 13:09:35 -0000	1.45.6.2
@@ -90,6 +90,7 @@ PVFS_error PVFS_isys_setattr(
     PVFS_sys_attr attr,
     PVFS_credentials *credentials,
     PVFS_sys_op_id *op_id,
+    PVFS_hint *hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -133,6 +134,7 @@ PVFS_error PVFS_isys_setattr(
     PINT_init_msgarray_params(&sm_p->msgarray_params, ref.fs_id);
     PINT_init_sysint_credentials(sm_p->cred_p, credentials);
     sm_p->object_ref = ref;
+    sm_p->hints = hints;
     
     ret = PVFS_util_copy_sys_attr(&sm_p->u.setattr.sys_attr, &attr);
     if(ret < 0)
@@ -155,14 +157,15 @@ PVFS_error PVFS_isys_setattr(
 PVFS_error PVFS_sys_setattr(
     PVFS_object_ref ref,
     PVFS_sys_attr attr,
-    PVFS_credentials *credentials)
+    PVFS_credentials *credentials,
+    PVFS_hint *hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
 
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_setattr entered\n");
 
-    ret = PVFS_isys_setattr(ref, attr, credentials, &op_id, NULL);
+    ret = PVFS_isys_setattr(ref, attr, credentials, &op_id, hints, NULL);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_isys_setattr call", ret);
@@ -229,7 +232,8 @@ static int setattr_msg_setup_msgpair(PIN
         sm_p->object_ref.handle,
         objtype,
         sm_p->u.setattr.sys_attr,
-        0);
+        0,
+        sm_p->hints);
 
     /* clients should not be able to mess with dfile and distribution
      * information here.  Those parameters should only be set at create time.

Index: sys-small-io.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-small-io.sm,v
diff -p -u -r1.9 -r1.9.2.1
--- sys-small-io.sm	13 Jul 2006 05:11:40 -0000	1.9
+++ sys-small-io.sm	19 Aug 2006 13:09:35 -0000	1.9.2.1
@@ -178,7 +178,8 @@ static int small_io_setup_msgpairs(PINT_
             sm_p->u.io.file_req,
             sm_p->u.io.file_req_offset,
             regions,
-            PINT_REQUEST_TOTAL_BYTES(sm_p->u.io.mem_req));
+            PINT_REQUEST_TOTAL_BYTES(sm_p->u.io.mem_req),
+            sm_p->hints);
 
         sm_p->msgarray[i].fs_id = sm_p->object_ref.fs_id;
         sm_p->msgarray[i].handle = sm_p->object_ref.handle;

Index: sys-statfs.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-statfs.sm,v
diff -p -u -r1.2 -r1.2.10.1
--- sys-statfs.sm	22 May 2006 21:50:13 -0000	1.2
+++ sys-statfs.sm	19 Aug 2006 13:09:35 -0000	1.2.10.1
@@ -61,6 +61,7 @@ PVFS_error PVFS_isys_statfs(
     PVFS_credentials *credentials,
     PVFS_sysresp_statfs *resp,
     PVFS_sys_op_id *op_id,
+    PVFS_hint *hints,
     void *user_ptr)
 {
     PINT_client_sm *sm_p = NULL;
@@ -143,6 +144,8 @@ PVFS_error PVFS_isys_statfs(
         free(sm_p);
         return -PVFS_ENOMEM;
     }
+    
+    sm_p->hints = hints;
 
     return PINT_client_state_machine_post(
         sm_p, PVFS_SYS_STATFS, op_id, user_ptr);
@@ -153,7 +156,8 @@ PVFS_error PVFS_isys_statfs(
 PVFS_error PVFS_sys_statfs(
     PVFS_fs_id fs_id,
     PVFS_credentials *credentials,
-    PVFS_sysresp_statfs* resp)
+    PVFS_sysresp_statfs* resp,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -161,7 +165,7 @@ PVFS_error PVFS_sys_statfs(
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_statfs entered\n");
 
     ret = PVFS_isys_statfs(
-        fs_id, credentials, resp, &op_id, NULL);
+        fs_id, credentials, resp, &op_id, hints, NULL);
 
     if (ret)
     {

Index: sys-symlink.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-symlink.sm,v
diff -p -u -r1.61.6.1 -r1.61.6.2
--- sys-symlink.sm	18 Aug 2006 05:12:02 -0000	1.61.6.1
+++ sys-symlink.sm	19 Aug 2006 13:09:35 -0000	1.61.6.2
@@ -184,6 +184,7 @@ PVFS_error PVFS_isys_symlink(
     PVFS_credentials *credentials,
     PVFS_sysresp_symlink *resp,
     PVFS_sys_op_id *op_id,
+    PVFS_hint *hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -229,6 +230,7 @@ PVFS_error PVFS_isys_symlink(
     sm_p->u.sym.stored_error_code = 0;
     sm_p->u.sym.retry_count = 0;
     sm_p->object_ref = parent_ref;
+    sm_p->hints = hints;
 
     gossip_debug(
         GOSSIP_CLIENT_DEBUG, "Symlinking %s under parent handle %llu "
@@ -247,7 +249,8 @@ PVFS_error PVFS_sys_symlink(
     char *target,
     PVFS_sys_attr attr,
     PVFS_credentials *credentials,
-    PVFS_sysresp_symlink *resp)
+    PVFS_sysresp_symlink *resp,
+    PVFS_hint * hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -255,7 +258,7 @@ PVFS_error PVFS_sys_symlink(
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_symlink entered\n");
 
     ret = PVFS_isys_symlink(entry_name, parent_ref, target, attr,
-                            credentials, resp, &op_id, NULL);
+                            credentials, resp, &op_id, hints, NULL);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_isys_symlink call", ret);
@@ -411,7 +414,8 @@ static int symlink_dspace_create_setup_m
         *sm_p->cred_p,
         sm_p->object_ref.fs_id,
         PVFS_TYPE_SYMLINK,
-        meta_handle_extent_array);
+        meta_handle_extent_array,
+        sm_p->hints);
 
     msg_p->fs_id = sm_p->object_ref.fs_id;
     msg_p->handle = meta_handle_extent_array.extent_array[0].first;
@@ -452,7 +456,8 @@ static int symlink_crdirent_setup_msgpai
         sm_p->u.sym.link_name,
         sm_p->u.sym.symlink_handle,
         sm_p->object_ref.handle,
-        sm_p->object_ref.fs_id);
+        sm_p->object_ref.fs_id,
+        sm_p->hints);
 
     msg_p->fs_id = sm_p->object_ref.fs_id;
     msg_p->handle = sm_p->object_ref.handle;
@@ -508,7 +513,8 @@ static int symlink_setattr_setup_msgpair
         sm_p->u.sym.symlink_handle,
         PVFS_TYPE_SYMLINK,
         sm_p->u.sym.sys_attr,
-        PVFS_ATTR_SYMLNK_ALL);
+        PVFS_ATTR_SYMLNK_ALL,
+        sm_p->hints);
 
     /* fill in symlink specific attributes */
     msg_p->req.u.setattr.attr.u.sym.target_path =
@@ -561,7 +567,8 @@ static int symlink_delete_handle_setup_m
         msg_p->req,
         *sm_p->cred_p,
         sm_p->object_ref.fs_id,
-        sm_p->u.sym.symlink_handle);
+        sm_p->u.sym.symlink_handle,
+        sm_p->hints);
 
     msg_p->fs_id = sm_p->object_ref.fs_id;
     msg_p->handle = sm_p->u.sym.symlink_handle;

Index: sys-truncate.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-truncate.sm,v
diff -p -u -r1.49 -r1.49.6.1
--- sys-truncate.sm	22 May 2006 21:50:13 -0000	1.49
+++ sys-truncate.sm	19 Aug 2006 13:09:35 -0000	1.49.6.1
@@ -87,6 +87,7 @@ PVFS_error PVFS_isys_truncate(
     PVFS_size size,
     PVFS_credentials *credentials,
     PVFS_sys_op_id *op_id,
+    PVFS_hint *hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -119,6 +120,7 @@ PVFS_error PVFS_isys_truncate(
     PINT_init_sysint_credentials(sm_p->cred_p, credentials);
     sm_p->u.truncate.size = size;
     sm_p->object_ref = ref;
+    sm_p->hints = hints;
 
     PINT_SM_GETATTR_STATE_FILL(
         sm_p->getattr,
@@ -134,7 +136,8 @@ PVFS_error PVFS_isys_truncate(
 PVFS_error PVFS_sys_truncate(
     PVFS_object_ref ref,
     PVFS_size size,
-    PVFS_credentials *credentials)
+    PVFS_credentials *credentials,
+    PVFS_hint *hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -142,7 +145,7 @@ PVFS_error PVFS_sys_truncate(
     gossip_debug(GOSSIP_CLIENT_DEBUG,
                  "PVFS_sys_truncate entered with %lld\n", lld(size));
 
-    ret = PVFS_isys_truncate(ref, size, credentials, &op_id, NULL);
+    ret = PVFS_isys_truncate(ref, size, credentials, &op_id, hints, NULL);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_isys_truncate call", ret);
@@ -228,7 +231,8 @@ static int truncate_datafile_setup_msgpa
             *sm_p->cred_p,
             sm_p->object_ref.fs_id,
             new_dfile_size,
-            attr->u.meta.dfile_array[i]);
+            attr->u.meta.dfile_array[i],
+            sm_p->hints);
         /*
           no callback. the status will be in the generic response
           structure



More information about the Pvfs2-cvs mailing list