[Pvfs2-cvs] commit by slang in pvfs2/src/client/sysint: client-state-machine.h getparent.c initialize.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-readdirplus.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
Mon Apr 7 12:30:59 EDT 2008


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

Modified Files:
      Tag: he-branch
	client-state-machine.h getparent.c initialize.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-readdirplus.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:
hints and events.


Index: client-state-machine.h
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/client-state-machine.h,v
diff -p -u -r1.173 -r1.173.6.1
--- client-state-machine.h	8 Jan 2008 18:38:00 -0000	1.173
+++ client-state-machine.h	7 Apr 2008 16:30:56 -0000	1.173.6.1
@@ -28,6 +28,7 @@
 #include "pint-sysint-utils.h"
 #include "pint-perf-counter.h"
 #include "state-machine.h"
+#include "pvfs2-hint.h"
 
 /* skip everything except #includes if __SM_CHECK_DEP is already defined; this
  * allows us to get the dependencies right for msgpairarray.sm which relies
@@ -303,10 +304,9 @@ struct PINT_client_mgmt_setparam_list_sm
 {
     PVFS_fs_id fs_id;
     enum PVFS_server_param param;
-    int64_t value;
+    struct PVFS_mgmt_setparam_value *value;
     PVFS_id_gen_t *addr_array;
     int count;
-    uint64_t *old_value_array;
     int *root_check_status_array;
     PVFS_error_details *details;
 };
@@ -517,6 +517,8 @@ typedef struct PINT_client_sm
 
     /* fetch_config state used by the nested fetch config state machines */
     struct PINT_server_fetch_config_sm_state fetch_config;
+
+    PVFS_hint hints;
 
     /* msgpair array ptr used when operations can be performed
      * concurrently.  this must be allocated within the upper-level

Index: getparent.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/getparent.c,v
diff -p -u -r1.13 -r1.13.22.1
--- getparent.c	16 Sep 2006 21:13:14 -0000	1.13
+++ getparent.c	7 Apr 2008 16:30:56 -0000	1.13.22.1
@@ -15,7 +15,8 @@ int PVFS_sys_getparent(
     PVFS_fs_id fs_id,
     char *entry_name,
     const 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: initialize.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/initialize.c,v
diff -p -u -r1.108 -r1.108.10.1
--- initialize.c	30 Aug 2007 00:13:41 -0000	1.108
+++ initialize.c	7 Apr 2008 16:30:56 -0000	1.108.10.1
@@ -28,6 +28,7 @@
 #include "src/server/request-scheduler/request-scheduler.h"
 #include "job-time-mgr.h"
 #include "pint-util.h"
+#include "pint-event.h"
 
 PINT_smcb *g_smcb = NULL; 
 
@@ -82,6 +83,13 @@ int PVFS_sys_initialize(uint64_t default
     if (debug_file)
     {
         gossip_enable_file(debug_file, "w");
+    }
+
+    ret = PINT_event_init(PINT_EVENT_TRACE_TAU);
+    if (ret < 0)
+    {
+        gossip_err("Error initializing event interface.\n");
+        return (ret);
     }
 
     ret = id_gen_safe_initialize();

Index: mgmt-create-dirent.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/mgmt-create-dirent.sm,v
diff -p -u -r1.17 -r1.17.10.1
--- mgmt-create-dirent.sm	30 Aug 2007 00:13:41 -0000	1.17
+++ mgmt-create-dirent.sm	7 Apr 2008 16:30:56 -0000	1.17.10.1
@@ -69,6 +69,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;
@@ -102,6 +103,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     gossip_debug(
         GOSSIP_CLIENT_DEBUG, "Trying to create dirent %s under %llu,%d\n",
@@ -118,7 +120,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;
@@ -127,7 +130,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);
@@ -182,7 +185,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.30 -r1.30.10.1
--- mgmt-event-mon-list.sm	30 Aug 2007 00:13:41 -0000	1.30
+++ mgmt-event-mon-list.sm	7 Apr 2008 16:30:56 -0000	1.30.10.1
@@ -63,6 +63,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_smcb *smcb = NULL;
@@ -96,6 +97,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     sm_p->msgarray_count = server_count;
     sm_p->msgarray = (PINT_sm_msgpair_state *)malloc(
@@ -117,7 +119,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;
@@ -127,7 +130,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)
     {
@@ -170,7 +173,8 @@ static PINT_sm_action mgmt_event_mon_lis
         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.32 -r1.32.10.1
--- mgmt-get-dfile-array.sm	18 Oct 2007 18:22:32 -0000	1.32
+++ mgmt-get-dfile-array.sm	7 Apr 2008 16:30:56 -0000	1.32.10.1
@@ -55,6 +55,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;
@@ -85,6 +86,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     PINT_SM_GETATTR_STATE_FILL(
         sm_p->getattr,
@@ -103,7 +105,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;
@@ -112,7 +115,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.13 -r1.13.10.1
--- mgmt-get-dirdata-handle.sm	30 Aug 2007 00:13:41 -0000	1.13
+++ mgmt-get-dirdata-handle.sm	7 Apr 2008 16:30:57 -0000	1.13.10.1
@@ -71,6 +71,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;
@@ -102,6 +103,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     gossip_debug(
         GOSSIP_CLIENT_DEBUG, "Trying to get dirdata object of parent "
@@ -116,7 +118,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;
@@ -125,7 +128,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);
@@ -167,7 +170,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.29 -r1.29.10.1
--- mgmt-iterate-handles-list.sm	30 Aug 2007 00:13:41 -0000	1.29
+++ mgmt-iterate-handles-list.sm	7 Apr 2008 16:30:57 -0000	1.29.10.1
@@ -66,6 +66,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_smcb *smcb = NULL;
@@ -100,6 +101,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     sm_p->msgarray_count = server_count;
     sm_p->msgarray = (PINT_sm_msgpair_state *)malloc(
@@ -125,7 +127,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;
@@ -135,7 +138,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)
     {
@@ -190,7 +193,8 @@ static PINT_sm_action mgmt_iterate_handl
 		*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.29 -r1.29.4.1
--- mgmt-misc.c	14 Feb 2008 00:04:39 -0000	1.29
+++ mgmt-misc.c	7 Apr 2008 16:30:57 -0000	1.29.4.1
@@ -19,6 +19,7 @@
 #include "bmi.h"
 #include "pint-sysint-utils.h"
 #include "pint-cached-config.h"
+#include "pint-util.h"
 #include "server-config.h"
 #include "client-state-machine.h"
 
@@ -54,7 +55,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;
@@ -96,7 +98,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);
 
@@ -112,9 +114,9 @@ PVFS_error PVFS_mgmt_setparam_all(
     PVFS_fs_id fs_id,
     PVFS_credentials *credentials,
     enum PVFS_server_param param,
-    uint64_t value,
-    uint64_t *old_value_array,
-    PVFS_error_details *details)
+    struct PVFS_mgmt_setparam_value *value,
+    PVFS_error_details *details,
+    PVFS_hint hints)
 {
     int count = 0;
     PVFS_error ret = -PVFS_EINVAL;
@@ -147,7 +149,7 @@ PVFS_error PVFS_mgmt_setparam_all(
 
     ret = PVFS_mgmt_setparam_list(
         fs_id, credentials, param, value, addr_array,
-        old_value_array, count, details);
+        count, details, hints);
 
     free(addr_array);
 
@@ -160,10 +162,10 @@ PVFS_error PVFS_mgmt_setparam_single(
     PVFS_fs_id fs_id,
     PVFS_credentials *credentials,
     enum PVFS_server_param param,
-    uint64_t value,
+    struct PVFS_mgmt_setparam_value *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;
@@ -172,7 +174,7 @@ PVFS_error PVFS_mgmt_setparam_single(
     {
         ret = PVFS_mgmt_setparam_list(
             fs_id, credentials, param, value,
-            &addr, old_value, 1, details);
+            &addr, 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.33 -r1.33.10.1
--- mgmt-noop.sm	30 Aug 2007 00:13:41 -0000	1.33
+++ mgmt-noop.sm	7 Apr 2008 16:30:57 -0000	1.33.10.1
@@ -59,6 +59,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_smcb *smcb = NULL;
@@ -82,6 +83,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_mgmt_noop calling "
                  "PINT_client_state_machine_post()\n");
@@ -95,14 +97,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);
@@ -129,7 +132,7 @@ static PINT_sm_action mgmt_noop_setup_ms
     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.34 -r1.34.10.1
--- mgmt-perf-mon-list.sm	18 Oct 2007 18:05:51 -0000	1.34
+++ mgmt-perf-mon-list.sm	7 Apr 2008 16:30:57 -0000	1.34.10.1
@@ -67,6 +67,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_smcb *smcb;
@@ -103,6 +104,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     sm_p->msgarray_count = server_count;
     sm_p->msgarray = (PINT_sm_msgpair_state *)malloc(
@@ -129,7 +131,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;
@@ -140,7 +143,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)
     {
@@ -183,7 +186,8 @@ static PINT_sm_action mgmt_perf_mon_list
             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.14 -r1.14.10.1
--- mgmt-remove-dirent.sm	30 Aug 2007 00:13:41 -0000	1.14
+++ mgmt-remove-dirent.sm	7 Apr 2008 16:30:57 -0000	1.14.10.1
@@ -69,6 +69,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;
@@ -100,6 +101,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     gossip_debug(
         GOSSIP_CLIENT_DEBUG, "Trying to remove dirent %s under %llu,%d\n",
@@ -115,7 +117,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;
@@ -124,7 +127,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);
@@ -171,7 +174,8 @@ static PINT_sm_action mgmt_remove_dirent
         *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.14 -r1.14.10.1
--- mgmt-remove-object.sm	30 Aug 2007 00:13:41 -0000	1.14
+++ mgmt-remove-object.sm	7 Apr 2008 16:30:57 -0000	1.14.10.1
@@ -68,6 +68,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;
@@ -97,6 +98,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     gossip_debug(
         GOSSIP_CLIENT_DEBUG, "Trying to remove handle %llu,%d\n",
@@ -113,7 +115,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;
@@ -121,7 +124,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);
@@ -167,7 +170,8 @@ static PINT_sm_action mgmt_remove_object
         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.36 -r1.36.10.1
--- mgmt-setparam-list.sm	30 Aug 2007 00:13:41 -0000	1.36
+++ mgmt-setparam-list.sm	7 Apr 2008 16:30:57 -0000	1.36.10.1
@@ -64,12 +64,12 @@ PVFS_error PVFS_imgmt_setparam_list(
     PVFS_fs_id fs_id,
     PVFS_credentials *credentials,
     enum PVFS_server_param param,
-    uint64_t value,
+    struct PVFS_mgmt_setparam_value *value,
     PVFS_BMI_addr_t *addr_array,
-    uint64_t *old_value_array,
     int count,
     PVFS_error_details *details,
     PVFS_mgmt_op_id *op_id,
+    PVFS_hint hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -101,7 +101,6 @@ PVFS_error PVFS_imgmt_setparam_list(
     sm_p->u.setparam_list.param = param;
     sm_p->u.setparam_list.value = value;
     sm_p->u.setparam_list.addr_array = addr_array;
-    sm_p->u.setparam_list.old_value_array = old_value_array;
     sm_p->u.setparam_list.count = count;
     sm_p->u.setparam_list.details = details;
 
@@ -120,11 +119,6 @@ PVFS_error PVFS_imgmt_setparam_list(
         sm_p->u.setparam_list.root_check_status_array = NULL;
     }
 
-    if (old_value_array != NULL)
-    {
-        memset(old_value_array, 0, (count * sizeof(uint64_t)));
-    }
-
     return PINT_client_state_machine_post(
         smcb,  op_id, user_ptr);
 }
@@ -135,11 +129,11 @@ PVFS_error PVFS_mgmt_setparam_list(
     PVFS_fs_id fs_id,
     PVFS_credentials *credentials,
     enum PVFS_server_param param,
-    uint64_t value,
+    struct PVFS_mgmt_setparam_value *value,
     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;
@@ -147,8 +141,8 @@ PVFS_error PVFS_mgmt_setparam_list(
     gossip_debug(GOSSIP_CLIENT_DEBUG, "%s entered\n", __func__);
 
     ret = PVFS_imgmt_setparam_list(
-        fs_id, credentials, param, value, addr_array, old_value_array,
-        count, details, &op_id, NULL);
+        fs_id, credentials, param, value, addr_array,
+        count, details, &op_id, hints, NULL);
 
     if (ret)
     {
@@ -191,8 +185,9 @@ static PINT_sm_action mgmt_setparam_list
             *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;
         msg_p->retry_flag = PVFS_MSGPAIR_RETRY;
@@ -292,13 +287,6 @@ static int collect_old_values_comp_fn(
     PINT_client_sm *sm_p = PINT_sm_frame(smcb, PINT_FRAME_CURRENT);
     int j;
 
-    if ((sm_p->msgarray[i].op_status == 0) &&
-        (sm_p->u.setparam_list.old_value_array))
-    {
-        sm_p->u.setparam_list.old_value_array[i] =
-            resp_p->u.mgmt_setparam.old_value;
-    }
- 
     /* if this is the last response, check all of the status values
      * and return error code if any requests failed
      */

Index: mgmt-statfs-list.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/mgmt-statfs-list.sm,v
diff -p -u -r1.43 -r1.43.10.1
--- mgmt-statfs-list.sm	30 Aug 2007 00:13:41 -0000	1.43
+++ mgmt-statfs-list.sm	7 Apr 2008 16:30:57 -0000	1.43.10.1
@@ -82,6 +82,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_smcb *smcb = NULL;
@@ -113,6 +114,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     memset(sm_p->u.statfs_list.stat_array, 0,
            (count * sizeof(struct PVFS_mgmt_server_stat)));
@@ -139,7 +141,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;
@@ -148,7 +151,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)
     {
@@ -191,7 +194,8 @@ static PINT_sm_action mgmt_statfs_list_s
 	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.35 -r1.35.32.1
--- pint-sysint-utils.c	18 Aug 2006 15:46:33 -0000	1.35
+++ pint-sysint-utils.c	7 Apr 2008 16:30:57 -0000	1.35.32.1
@@ -66,7 +66,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.28 -r1.28.22.1
--- pint-sysint-utils.h	12 Sep 2006 00:49:30 -0000	1.28
+++ pint-sysint-utils.h	7 Apr 2008 16:30:57 -0000	1.28.22.1
@@ -30,7 +30,9 @@
 
 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);
+
 struct server_configuration_s *PINT_get_server_config_struct(
     PVFS_fs_id fs_id);
 void PINT_put_server_config_struct(

Index: remove.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/remove.sm,v
diff -p -u -r1.27 -r1.27.10.1
--- remove.sm	30 Aug 2007 00:13:41 -0000	1.27
+++ remove.sm	7 Apr 2008 16:30:57 -0000	1.27.10.1
@@ -209,7 +209,8 @@ static PINT_sm_action remove_datafile_re
             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];
@@ -247,7 +248,8 @@ static PINT_sm_action remove_object_remo
         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.31 -r1.31.4.1
--- server-get-config.sm	24 Jan 2008 22:08:16 -0000	1.31
+++ server-get-config.sm	7 Apr 2008 16:30:57 -0000	1.31.4.1
@@ -124,7 +124,8 @@ machine pvfs2_server_fetch_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_smcb *smcb = NULL;
@@ -172,6 +173,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;
+    
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     ret = PINT_client_state_machine_post(smcb, &op_id, NULL);
     if (ret)
@@ -277,7 +280,7 @@ static PINT_sm_action server_get_config_
         return SM_ACTION_COMPLETE;
     }
 
-    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;
@@ -509,7 +512,7 @@ static PINT_sm_action server_fetch_confi
     {
         msg_p = &sm_p->msgarray[i];
         sm_p->msgarray[i].enc_type = sm_p->msgpair.enc_type;
-        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.115 -r1.115.4.1
--- sys-create.sm	14 Feb 2008 00:04:39 -0000	1.115
+++ sys-create.sm	7 Apr 2008 16:30:57 -0000	1.115.4.1
@@ -181,6 +181,7 @@ PVFS_error PVFS_isys_create(
     PVFS_sys_layout *layout,
     PVFS_sysresp_create *resp,
     PVFS_sys_op_id *op_id,
+    PVFS_hint hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -239,6 +240,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
     sm_p->parent_ref = parent_ref;
 
     /* copy layout to sm struct */
@@ -333,7 +335,7 @@ PVFS_error PVFS_isys_create(
     gossip_debug(
         GOSSIP_CLIENT_DEBUG, "Creating file %s under %llu, %d\n",
         object_name, llu(parent_ref.handle), parent_ref.fs_id);
-          
+
     return PINT_client_state_machine_post(
         smcb,  op_id, user_ptr);
 }
@@ -346,8 +348,9 @@ PVFS_error PVFS_sys_create(
     PVFS_sys_attr attr,
     const PVFS_credentials *credentials,
     PVFS_sys_dist *dist,
+    PVFS_sysresp_create *resp,
     PVFS_sys_layout *layout,
-    PVFS_sysresp_create *resp)
+    PVFS_hint hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -355,7 +358,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, layout, resp, &op_id, NULL);
+                           dist, layout, resp, &op_id, hints, NULL);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_isys_create call", ret);
@@ -574,7 +577,8 @@ static PINT_sm_action create_dspace_crea
         *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;
@@ -669,7 +673,8 @@ static PINT_sm_action create_datafiles_s
             *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,
@@ -684,6 +689,11 @@ static PINT_sm_action create_datafiles_s
         msg_p->retry_flag = PVFS_MSGPAIR_NO_RETRY;
         msg_p->comp_fn = create_datafiles_comp_fn;
         msg_p->svr_addr = sm_p->u.create.data_server_addrs[i];
+
+        gossip_debug(GOSSIP_VARSTRIP_DEBUG,
+                     "Data file number: %d - Server name: %s\n",
+                     i, PVFS_mgmt_map_addr(msg_p->fs_id, sm_p->cred_p,
+                                           msg_p->svr_addr, NULL));
     }
     return SM_ACTION_COMPLETE;
 }
@@ -722,7 +732,9 @@ static PINT_sm_action create_setattr_set
         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;
@@ -787,7 +799,8 @@ static PINT_sm_action create_crdirent_se
         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;
@@ -899,7 +912,8 @@ static PINT_sm_action create_delete_hand
                 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;
@@ -916,7 +930,8 @@ static PINT_sm_action create_delete_hand
                 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.10 -r1.10.10.1
--- sys-del-eattr.sm	30 Aug 2007 00:13:41 -0000	1.10
+++ sys-del-eattr.sm	7 Apr 2008 16:30:57 -0000	1.10.10.1
@@ -55,6 +55,7 @@ PVFS_error PVFS_isys_deleattr(
         const PVFS_credentials *credentials,
         PVFS_ds_keyval *key_p,
         PVFS_sys_op_id *op_id,
+        PVFS_hint hints,
         void *user_ptr)
 {
     int ret = -PVFS_EINVAL;
@@ -86,7 +87,8 @@ PVFS_error PVFS_isys_deleattr(
     sm_p->u.deleattr.key_p = key_p;
     sm_p->error_code = 0;
     sm_p->object_ref = ref;
-
+    PVFS_hint_copy(hints, &sm_p->hints);
+    
     return PINT_client_state_machine_post(
             smcb,  op_id, user_ptr);
 }
@@ -94,7 +96,8 @@ PVFS_error PVFS_isys_deleattr(
 PVFS_error PVFS_sys_deleattr(
         PVFS_object_ref ref,
         const 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;
@@ -102,7 +105,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)
     {
@@ -137,7 +140,8 @@ static PINT_sm_action del_eattr_setup_ms
             (*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.41 -r1.41.10.1
--- sys-flush.sm	30 Aug 2007 00:13:41 -0000	1.41
+++ sys-flush.sm	7 Apr 2008 16:30:57 -0000	1.41.10.1
@@ -71,6 +71,7 @@ PVFS_error PVFS_isys_flush(
     PVFS_object_ref ref,
     const PVFS_credentials *credentials,
     PVFS_sys_op_id *op_id,
+    PVFS_hint hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -100,6 +101,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     /* NOTE: This state machine previously multiplied the default job timeout
      * by five to allow for potentially long sync delays.  We instead now set
@@ -122,14 +124,15 @@ PVFS_error PVFS_isys_flush(
  */
 PVFS_error PVFS_sys_flush(
     PVFS_object_ref ref,
-    const PVFS_credentials *credentials)
+    const 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);
@@ -192,7 +195,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];
@@ -210,7 +214,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.12 -r1.12.10.1
--- sys-get-eattr.sm	30 Aug 2007 00:13:41 -0000	1.12
+++ sys-get-eattr.sm	7 Apr 2008 16:30:57 -0000	1.12.10.1
@@ -58,6 +58,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;
@@ -92,6 +93,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     return PINT_client_state_machine_post(
             smcb,  op_id, user_ptr);
@@ -102,7 +104,8 @@ PVFS_error PVFS_sys_geteattr_list(
         const 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;
@@ -110,7 +113,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)
     {
@@ -135,13 +138,14 @@ PVFS_error PVFS_sys_geteattr(
         PVFS_object_ref ref,
         const 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 PINT_sm_action get_eattr_setup_msgpair(
@@ -172,7 +176,8 @@ static PINT_sm_action get_eattr_setup_ms
             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.110 -r1.110.6.1
--- sys-getattr.sm	4 Jan 2008 16:37:12 -0000	1.110
+++ sys-getattr.sm	7 Apr 2008 16:30:57 -0000	1.110.6.1
@@ -162,6 +162,7 @@ PVFS_error PVFS_isys_getattr(
     const 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;
@@ -199,6 +200,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
     
     PINT_SM_GETATTR_STATE_FILL(
         sm_p->getattr,
@@ -218,7 +220,8 @@ PVFS_error PVFS_sys_getattr(
     PVFS_object_ref ref,
     uint32_t attrmask, 
     const PVFS_credentials *credentials,
-    PVFS_sysresp_getattr *resp_p)
+    PVFS_sysresp_getattr *resp_p,
+    PVFS_hint hints)
 {
     PVFS_error ret, error;
     PVFS_sys_op_id op_id;
@@ -226,7 +229,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);
@@ -455,7 +458,8 @@ static PINT_sm_action getattr_object_get
         *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;
@@ -673,7 +677,8 @@ static PINT_sm_action getattr_datafile_g
             *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.159 -r1.159.6.1
--- sys-io.sm	19 Dec 2007 05:37:54 -0000	1.159
+++ sys-io.sm	7 Apr 2008 16:30:57 -0000	1.159.6.1
@@ -229,6 +229,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;
@@ -302,6 +303,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     return PINT_client_state_machine_post(
         smcb,  op_id, user_ptr);
@@ -319,7 +321,8 @@ PVFS_error PVFS_sys_io(
     PVFS_Request mem_req,
     const 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;
@@ -327,7 +330,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)
@@ -553,7 +556,8 @@ static PINT_sm_action io_datafile_setup_
             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;
@@ -689,7 +693,7 @@ static PINT_sm_action io_datafile_post_m
             msg->svr_addr, msg->encoded_resp_p, msg->max_resp_sz,
             cur_ctx->session_tag, BMI_PRE_ALLOC, smcb, status_user_tag,
             &msg->recv_status, &msg->recv_id, pint_client_sm_context,
-            server_config->client_job_bmi_timeout);
+            server_config->client_job_bmi_timeout, sm_p->hints);
         PINT_put_server_config_struct(server_config);
 
         /* ret -1: problem, do not look at msg recv_status */
@@ -764,7 +768,7 @@ static PINT_sm_action io_datafile_post_m
             msg->encoded_req.total_size, cur_ctx->session_tag,
             msg->encoded_req.buffer_type, 1, smcb, status_user_tag,
             &msg->send_status, &msg->send_id, pint_client_sm_context,
-            server_config->client_job_bmi_timeout);
+            server_config->client_job_bmi_timeout, sm_p->hints);
         PINT_put_server_config_struct(server_config);
 
         if (ret < 0) {
@@ -1764,7 +1768,7 @@ static inline int io_post_flow(
         &cur_ctx->flow_desc, smcb, status_user_tag,
         &cur_ctx->flow_status, &cur_ctx->flow_job_id,
         pint_client_sm_context,
-        server_config->client_job_flow_timeout);
+        server_config->client_job_flow_timeout, sm_p->hints);
     PINT_put_server_config_struct(server_config);
 
     /* if the flow fails immediately, then we have to do some special
@@ -1854,7 +1858,7 @@ static inline int io_post_write_ack_recv
         cur_ctx->write_ack.max_resp_sz, cur_ctx->session_tag,
         BMI_PRE_ALLOC, smcb, status_user_tag,
         &cur_ctx->write_ack.recv_status, &cur_ctx->write_ack.recv_id,
-        pint_client_sm_context, JOB_TIMEOUT_INF);
+        pint_client_sm_context, JOB_TIMEOUT_INF, sm_p->hints);
 
     if (ret < 0)
     {

Index: sys-list-eattr.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-list-eattr.sm,v
diff -p -u -r1.9 -r1.9.10.1
--- sys-list-eattr.sm	30 Aug 2007 00:13:42 -0000	1.9
+++ sys-list-eattr.sm	7 Apr 2008 16:30:57 -0000	1.9.10.1
@@ -57,6 +57,7 @@ PVFS_error PVFS_isys_listeattr(
         const PVFS_credentials *credentials,
         PVFS_sysresp_listeattr *resp_p,
         PVFS_sys_op_id *op_id,
+        PVFS_hint hints,
         void *user_ptr)
 {
     int ret = -PVFS_EINVAL;
@@ -91,6 +92,7 @@ PVFS_error PVFS_isys_listeattr(
     sm_p->u.listeattr.pos_token = token;
     sm_p->error_code = 0;
     sm_p->object_ref = ref;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     return PINT_client_state_machine_post(
             smcb,  op_id, user_ptr);
@@ -101,7 +103,8 @@ PVFS_error PVFS_sys_listeattr(
         PVFS_ds_position token,
         int32_t nkey,
         const 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;
@@ -109,7 +112,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)
     {
@@ -156,7 +159,8 @@ static PINT_sm_action list_eattr_setup_m
             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.75 -r1.75.6.1
--- sys-lookup.sm	21 Jan 2008 21:09:37 -0000	1.75
+++ sys-lookup.sm	7 Apr 2008 16:30:57 -0000	1.75.6.1
@@ -455,6 +455,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;
@@ -486,7 +487,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->u.lookup.context_count = 0;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     ret = initialize_context(&sm_p->u.lookup,
                              relative_pathname, parent);
@@ -515,7 +516,8 @@ PVFS_error PVFS_sys_ref_lookup(
     PVFS_object_ref parent,
     const PVFS_credentials *credentials,
     PVFS_sysresp_lookup *resp,
-    int32_t follow_link)
+    int32_t follow_link,
+    PVFS_hint hints)
 {
     PVFS_error ret, error;
     PVFS_sys_op_id op_id;
@@ -524,7 +526,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)
     {
@@ -556,7 +558,8 @@ PVFS_error PVFS_sys_lookup(
     PVFS_fs_id fs_id, char *name,
     const 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;
@@ -591,7 +594,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;
@@ -691,7 +694,8 @@ static PINT_sm_action lookup_segment_set
         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.63 -r1.63.4.1
--- sys-mkdir.sm	14 Feb 2008 00:04:39 -0000	1.63
+++ sys-mkdir.sm	7 Apr 2008 16:30:57 -0000	1.63.4.1
@@ -159,6 +159,7 @@ PVFS_error PVFS_isys_mkdir(
     const PVFS_credentials *credentials,
     PVFS_sysresp_mkdir *resp,
     PVFS_sys_op_id *op_id,
+    PVFS_hint hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -206,6 +207,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     gossip_debug(GOSSIP_CLIENT_DEBUG, "Creating directory named %s "
                  "under parent handle %llu on fs %d\n", object_name,
@@ -222,7 +224,8 @@ PVFS_error PVFS_sys_mkdir(
     PVFS_object_ref parent_ref,
     PVFS_sys_attr attr,
     const 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;
@@ -230,7 +233,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);
@@ -366,7 +369,8 @@ static PINT_sm_action mkdir_msg_setup_ms
         *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;
@@ -413,7 +417,8 @@ static PINT_sm_action mkdir_crdirent_set
         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;
@@ -474,7 +479,8 @@ static PINT_sm_action mkdir_delete_handl
         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;
@@ -692,8 +698,8 @@ static PINT_sm_action mkdir_seteattr_set
             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.52 -r1.52.10.1
--- sys-readdir.sm	30 Aug 2007 00:13:42 -0000	1.52
+++ sys-readdir.sm	7 Apr 2008 16:30:57 -0000	1.52.10.1
@@ -102,6 +102,7 @@ PVFS_error PVFS_isys_readdir(
     const 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(
     PINT_init_sysint_credentials(sm_p->cred_p, credentials);
     sm_p->u.readdir.readdir_resp = resp;
     sm_p->object_ref = ref;
+    PVFS_hint_copy(hints, &sm_p->hints);
     /* point the sm dirent array and outcount to the readdir response field */
     sm_p->readdir.dirent_array = &resp->dirent_array;
     sm_p->readdir.dirent_outcount = &resp->pvfs_dirent_outcount;
@@ -168,7 +170,8 @@ PVFS_error PVFS_sys_readdir(
     PVFS_ds_position token, 
     int32_t pvfs_dirent_incount,
     const 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;
@@ -176,7 +179,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);
@@ -248,8 +251,9 @@ static PINT_sm_action readdir_msg_setup_
         *sm_p->cred_p,
         sm_p->object_ref.fs_id,
         sm_p->object_ref.handle,
-        sm_p->readdir.pos_token,
-        sm_p->readdir.dirent_limit);
+        sm_p->u.readdir.pos_token,
+        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-readdirplus.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-readdirplus.sm,v
diff -p -u -r1.9 -r1.9.4.1
--- sys-readdirplus.sm	12 Mar 2008 19:50:00 -0000	1.9
+++ sys-readdirplus.sm	7 Apr 2008 16:30:57 -0000	1.9.4.1
@@ -114,6 +114,7 @@ PVFS_error PVFS_isys_readdirplus(
     uint32_t attrmask,
     PVFS_sysresp_readdirplus *resp,
     PVFS_sys_op_id *op_id,
+    PVFS_hint hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -151,6 +152,7 @@ PVFS_error PVFS_isys_readdirplus(
     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;
+    PVFS_hint_copy(hints, &sm_p->hints);
     /* point the sm dirent array and outcount to the readdirplus response field */
     sm_p->readdir.dirent_array = &resp->dirent_array;
     sm_p->readdir.dirent_outcount = &resp->pvfs_dirent_outcount;
@@ -191,7 +193,8 @@ PVFS_error PVFS_sys_readdirplus(
     int32_t pvfs_dirent_incount,
     const PVFS_credentials *credentials,
     uint32_t attrmask,
-    PVFS_sysresp_readdirplus *resp)
+    PVFS_sysresp_readdirplus *resp,
+    PVFS_hint hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -199,7 +202,7 @@ PVFS_error PVFS_sys_readdirplus(
     gossip_debug(GOSSIP_CLIENT_DEBUG, "PVFS_sys_readdirplus entered\n");
 
     ret = PVFS_isys_readdirplus(ref, token, pvfs_dirent_incount,
-                            credentials, attrmask, resp, &op_id, NULL);
+                            credentials, attrmask, resp, &op_id, NULL, hints);
     if (ret)
     {
         PVFS_perror_gossip("PVFS_isys_readdirplus call", ret);
@@ -512,7 +515,8 @@ static PINT_sm_action readdirplus_fetch_
             sm_p->object_ref.fs_id,
             sm_p->u.readdirplus.attrmask,
             sm_p->u.readdirplus.handle_count[i],
-            sm_p->u.readdirplus.handles[i]);
+            sm_p->u.readdirplus.handles[i],
+            sm_p->hints);
         msg_p->fs_id = sm_p->object_ref.fs_id;
         msg_p->handle = PVFS_HANDLE_NULL;
         msg_p->retry_flag = PVFS_MSGPAIR_RETRY;
@@ -732,7 +736,8 @@ static PINT_sm_action readdirplus_fetch_
             sm_p->object_ref.fs_id,
             PVFS_ATTR_DATA_SIZE,
             sm_p->u.readdirplus.handle_count[i],
-            sm_p->u.readdirplus.handles[i]);
+            sm_p->u.readdirplus.handles[i],
+            sm_p->hints);
         msg_p->fs_id = sm_p->object_ref.fs_id;
         msg_p->handle = PVFS_HANDLE_NULL;
         msg_p->retry_flag = PVFS_MSGPAIR_RETRY;

Index: sys-remove.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-remove.sm,v
diff -p -u -r1.105 -r1.105.10.1
--- sys-remove.sm	30 Aug 2007 00:13:42 -0000	1.105
+++ sys-remove.sm	7 Apr 2008 16:30:57 -0000	1.105.10.1
@@ -154,6 +154,7 @@ PVFS_error PVFS_isys_remove(
     PVFS_object_ref parent_ref, 
     const PVFS_credentials *credentials,
     PVFS_sys_op_id *op_id,
+    PVFS_hint hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -186,6 +187,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     gossip_debug(
         GOSSIP_CLIENT_DEBUG, "Trying to remove entry %s under %llu,%d\n",
@@ -206,7 +208,8 @@ PVFS_error PVFS_isys_remove(
 PVFS_error PVFS_sys_remove(
     char *object_name,
     PVFS_object_ref parent_ref, 
-    const PVFS_credentials *credentials)
+    const PVFS_credentials *credentials,
+    PVFS_hint hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -214,7 +217,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);
@@ -268,7 +271,8 @@ static PINT_sm_action remove_rmdirent_se
         *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,
@@ -313,7 +317,8 @@ static PINT_sm_action remove_crdirent_se
         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.56 -r1.56.10.1
--- sys-rename.sm	30 Aug 2007 00:13:42 -0000	1.56
+++ sys-rename.sm	7 Apr 2008 16:30:57 -0000	1.56.10.1
@@ -224,6 +224,7 @@ PVFS_error PVFS_isys_rename(
     PVFS_object_ref new_parent_ref,
     const PVFS_credentials *credentials,
     PVFS_sys_op_id *op_id,
+    PVFS_hint hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -287,6 +288,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     gossip_debug(
         GOSSIP_CLIENT_DEBUG, "Renaming file named %s (under [%llu,%d]\n\t"
@@ -312,7 +314,8 @@ PVFS_error PVFS_sys_rename(
     PVFS_object_ref old_parent_ref,
     char *new_entry,
     PVFS_object_ref new_parent_ref,
-    const PVFS_credentials *credentials)
+    const PVFS_credentials *credentials,
+    PVFS_hint hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -320,7 +323,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);
@@ -545,7 +548,8 @@ static PINT_sm_action rename_lookups_set
             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;
@@ -603,7 +607,8 @@ static PINT_sm_action rename_crdirent_se
         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;
@@ -651,7 +656,8 @@ static PINT_sm_action rename_rmdirent_se
         *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;
@@ -777,7 +783,8 @@ static PINT_sm_action rename_chdirent_se
         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.11 -r1.11.10.1
--- sys-set-eattr.sm	30 Aug 2007 00:13:42 -0000	1.11
+++ sys-set-eattr.sm	7 Apr 2008 16:30:57 -0000	1.11.10.1
@@ -58,6 +58,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;
@@ -107,6 +108,7 @@ PVFS_error PVFS_isys_seteattr_list(
     sm_p->u.seteattr.flags = flags;
     sm_p->error_code = 0;
     sm_p->object_ref = ref;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     return PINT_client_state_machine_post(
             smcb,  op_id, user_ptr);
@@ -118,7 +120,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;
@@ -126,7 +129,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)
     {
@@ -152,9 +155,10 @@ PVFS_error PVFS_sys_seteattr(
         const 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);
 }
 
 
@@ -172,7 +176,8 @@ static PINT_sm_action set_eattr_setup_ms
             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.51 -r1.51.10.1
--- sys-setattr.sm	30 Aug 2007 00:13:42 -0000	1.51
+++ sys-setattr.sm	7 Apr 2008 16:30:58 -0000	1.51.10.1
@@ -75,6 +75,7 @@ PVFS_error PVFS_isys_setattr(
     PVFS_sys_attr attr,
     const PVFS_credentials *credentials,
     PVFS_sys_op_id *op_id,
+    PVFS_hint hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -123,6 +124,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)
@@ -145,14 +147,15 @@ PVFS_error PVFS_isys_setattr(
 PVFS_error PVFS_sys_setattr(
     PVFS_object_ref ref,
     PVFS_sys_attr attr,
-    const PVFS_credentials *credentials)
+    const 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);
@@ -215,7 +218,8 @@ static PINT_sm_action setattr_msg_setup_
         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.15 -r1.15.10.1
--- sys-small-io.sm	30 Aug 2007 00:13:42 -0000	1.15
+++ sys-small-io.sm	7 Apr 2008 16:30:58 -0000	1.15.10.1
@@ -168,7 +168,8 @@ static PINT_sm_action small_io_setup_msg
             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.8 -r1.8.4.1
--- sys-statfs.sm	14 Feb 2008 00:04:39 -0000	1.8
+++ sys-statfs.sm	7 Apr 2008 16:30:58 -0000	1.8.4.1
@@ -53,6 +53,7 @@ PVFS_error PVFS_isys_statfs(
     const PVFS_credentials *credentials,
     PVFS_sysresp_statfs *resp,
     PVFS_sys_op_id *op_id,
+    PVFS_hint hints,
     void *user_ptr)
 {
     PINT_smcb *smcb = NULL;
@@ -133,9 +134,11 @@ PVFS_error PVFS_isys_statfs(
         PINT_smcb_free(smcb);
         return -PVFS_ENOMEM;
     }
+    
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     return PINT_client_state_machine_post(
-        smcb,  op_id, user_ptr);
+        smcb, op_id, user_ptr);
 }
 
 /** Obtain file system statistics.
@@ -143,7 +146,8 @@ PVFS_error PVFS_isys_statfs(
 PVFS_error PVFS_sys_statfs(
     PVFS_fs_id fs_id,
     const 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;
@@ -151,7 +155,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.71 -r1.71.4.1
--- sys-symlink.sm	14 Feb 2008 00:04:39 -0000	1.71
+++ sys-symlink.sm	7 Apr 2008 16:30:58 -0000	1.71.4.1
@@ -1,5 +1,5 @@
-/* 
- * (C) 2003 Clemson University and The University of Chicago 
+/*
+ * (C) 2003 Clemson University and The University of Chicago
  *
  * See COPYING in top-level directory.
  */
@@ -150,6 +150,7 @@ PVFS_error PVFS_isys_symlink(
     const PVFS_credentials *credentials,
     PVFS_sysresp_symlink *resp,
     PVFS_sys_op_id *op_id,
+    PVFS_hint hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -200,6 +201,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     gossip_debug(
         GOSSIP_CLIENT_DEBUG, "Symlinking %s under parent handle %llu "
@@ -218,7 +220,8 @@ PVFS_error PVFS_sys_symlink(
     char *target,
     PVFS_sys_attr attr,
     const 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;
@@ -226,7 +229,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);
@@ -273,7 +276,7 @@ static PINT_sm_action symlink_init(
         PVFS_ATTR_COMMON_ALL,
         PVFS_TYPE_DIRECTORY,
         0);
-        
+
     return ret;
 }
 
@@ -281,9 +284,8 @@ static int symlink_create_comp_fn(void *
                                   struct PVFS_server_resp *resp_p,
                                   int index)
 {
-    PINT_smcb *smcb = v_p;
-    PINT_client_sm *sm_p = PINT_sm_frame(smcb, PINT_FRAME_CURRENT);
-    
+    PINT_client_sm *sm_p = (PINT_client_sm *)v_p;
+
     gossip_debug(GOSSIP_CLIENT_DEBUG, "symlink_create_comp_fn\n");
 
     assert(resp_p->op == PVFS_SERV_CREATE);
@@ -375,7 +377,8 @@ static PINT_sm_action symlink_dspace_cre
         *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;
@@ -413,7 +416,8 @@ static PINT_sm_action symlink_crdirent_s
         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;
@@ -465,7 +469,8 @@ static PINT_sm_action symlink_setattr_se
         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 =
@@ -515,7 +520,8 @@ static PINT_sm_action symlink_delete_han
         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;
@@ -560,8 +566,8 @@ static PINT_sm_action symlink_cleanup(
         sm_p->u.sym.sym_resp->ref = symlink_ref;
 
         /* insert newly created symlink into the ncache */
-        PINT_ncache_update((const char*) sm_p->u.sym.link_name, 
-                           (const PVFS_object_ref*) &symlink_ref, 
+        PINT_ncache_update((const char*) sm_p->u.sym.link_name,
+                           (const PVFS_object_ref*) &symlink_ref,
                            (const PVFS_object_ref*) &(sm_p->object_ref));
     }
     else if ((PVFS_ERROR_CLASS(-sm_p->error_code) == PVFS_ERROR_BMI) &&

Index: sys-truncate.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/sys-truncate.sm,v
diff -p -u -r1.56 -r1.56.10.1
--- sys-truncate.sm	30 Aug 2007 00:13:42 -0000	1.56
+++ sys-truncate.sm	7 Apr 2008 16:30:58 -0000	1.56.10.1
@@ -74,6 +74,7 @@ PVFS_error PVFS_isys_truncate(
     PVFS_size size,
     const PVFS_credentials *credentials,
     PVFS_sys_op_id *op_id,
+    PVFS_hint hints,
     void *user_ptr)
 {
     PVFS_error ret = -PVFS_EINVAL;
@@ -111,6 +112,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;
+    PVFS_hint_copy(hints, &sm_p->hints);
 
     PINT_SM_GETATTR_STATE_FILL(
         sm_p->getattr,
@@ -126,7 +128,8 @@ PVFS_error PVFS_isys_truncate(
 PVFS_error PVFS_sys_truncate(
     PVFS_object_ref ref,
     PVFS_size size,
-    const PVFS_credentials *credentials)
+    const PVFS_credentials *credentials,
+    PVFS_hint hints)
 {
     PVFS_error ret = -PVFS_EINVAL, error = 0;
     PVFS_sys_op_id op_id;
@@ -134,7 +137,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);
@@ -221,7 +224,8 @@ static PINT_sm_action truncate_datafile_
             *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