[Pvfs2-cvs] commit by slang in pvfs2/src/server: chdirent.sm crdirent.sm create.sm del-eattr.sm event-mon.sm final-response.sm flush.sm get-attr.sm get-config.sm get-eattr.sm io.sm iterate-handles.sm job-timer.sm list-attr.sm list-eattr.sm lookup.sm mgmt-get-dirdata-handle.sm mgmt-remove-dirent.sm mgmt-remove-object.sm mkdir.sm noop.sm perf-mon.sm perf-update.sm prelude.sm proto-error.sm pvfs2-server.c pvfs2-server.h readdir.sm remove.sm rmdirent.sm set-attr.sm set-eattr.sm setparam.sm small-io.sm statfs.sm truncate.sm unexpected.sm

CVS commit program cvs at parl.clemson.edu
Wed Apr 11 18:51:03 EDT 2007


Update of /projects/cvsroot/pvfs2/src/server
In directory parlweb1:/tmp/cvs-serv5206/src/server

Modified Files:
      Tag: WALT3
	chdirent.sm crdirent.sm create.sm del-eattr.sm event-mon.sm 
	final-response.sm flush.sm get-attr.sm get-config.sm 
	get-eattr.sm io.sm iterate-handles.sm job-timer.sm 
	list-attr.sm list-eattr.sm lookup.sm 
	mgmt-get-dirdata-handle.sm mgmt-remove-dirent.sm 
	mgmt-remove-object.sm mkdir.sm noop.sm perf-mon.sm 
	perf-update.sm prelude.sm proto-error.sm pvfs2-server.c 
	pvfs2-server.h readdir.sm remove.sm rmdirent.sm set-attr.sm 
	set-eattr.sm setparam.sm small-io.sm statfs.sm truncate.sm 
	unexpected.sm 
Log Message:
walt3 reverse merge from head includes merges of pw's sm changes (no state declarations), cleanup of state machine code, and other general merging/fixes.


Index: chdirent.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/chdirent.sm,v
diff -p -u -r1.11.4.7 -r1.11.4.8
--- chdirent.sm	24 Oct 2006 20:06:43 -0000	1.11.4.7
+++ chdirent.sm	11 Apr 2007 22:51:00 -0000	1.11.4.8
@@ -40,18 +40,7 @@ static PINT_sm_action chdirent_setup_res
 
 %%
 
-machine pvfs2_chdirent_sm(
-    prelude,
-    verify_parent_metadata_and_read_directory_entry_handle,
-    read_directory_entry,
-    read_directory_entry_failure,
-    change_directory_entry,
-    change_directory_entry_failure,
-    check_for_req_dir_update,
-    update_directory_attr,
-    setup_resp,
-    final_response,
-    cleanup)
+machine pvfs2_chdirent_sm
 {
     state prelude
     {

Index: crdirent.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/crdirent.sm,v
diff -p -u -r1.60.2.6 -r1.60.2.7
--- crdirent.sm	19 Oct 2006 22:17:14 -0000	1.60.2.6
+++ crdirent.sm	11 Apr 2007 22:51:00 -0000	1.60.2.7
@@ -39,17 +39,7 @@ static PINT_sm_action validation_object_
 
 %%
 
-machine pvfs2_crdirent_sm(
-    prelude,
-    setup_op,
-    validate,
-    validation_object_type_failure,
-    read_directory_entry_handle,
-    write_directory_entry,
-    check_for_req_dir_update,
-    update_directory_attr,
-    cleanup,
-    final_response)
+machine pvfs2_crdirent_sm
 {
     state prelude
     {

Index: create.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/create.sm,v
diff -p -u -r1.40.4.6 -r1.40.4.7
--- create.sm	19 Oct 2006 22:17:15 -0000	1.40.4.6
+++ create.sm	11 Apr 2007 22:51:00 -0000	1.40.4.7
@@ -22,12 +22,7 @@ static PINT_sm_action create_setup_resp(
 
 %%
 
-machine pvfs2_create_sm(
-    prelude,
-    create,
-    setup_resp,
-    final_response,
-    cleanup)
+machine pvfs2_create_sm
 {
     state prelude
     {

Index: del-eattr.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/del-eattr.sm,v
diff -p -u -r1.7.4.7 -r1.7.4.8
--- del-eattr.sm	19 Oct 2006 22:17:15 -0000	1.7.4.7
+++ del-eattr.sm	11 Apr 2007 22:51:00 -0000	1.7.4.8
@@ -23,12 +23,7 @@ static PINT_sm_action deleattr_verify_ea
 
 %%
 
-machine pvfs2_del_eattr_sm(
-    prelude,
-    cleanup,
-    verify_eattribs,
-    delobj_eattrib,
-    final_response)
+machine pvfs2_del_eattr_sm
 {
     state prelude
     {

Index: event-mon.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/event-mon.sm,v
diff -p -u -r1.5.4.4 -r1.5.4.5
--- event-mon.sm	16 Jul 2006 21:42:58 -0000	1.5.4.4
+++ event-mon.sm	11 Apr 2007 22:51:00 -0000	1.5.4.5
@@ -21,7 +21,7 @@ static PINT_sm_action event_mon_do_work(
 
 %%
 
-machine pvfs2_event_mon_sm(prelude, do_work, final_response, cleanup)
+machine pvfs2_event_mon_sm
 {
 	state prelude
 	{

Index: final-response.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/final-response.sm,v
diff -p -u -r1.30.4.6 -r1.30.4.7
--- final-response.sm	18 Sep 2006 15:05:24 -0000	1.30.4.6
+++ final-response.sm	11 Apr 2007 22:51:00 -0000	1.30.4.7
@@ -41,10 +41,7 @@ static void PINT_gossip_err_server_resp(
 
 %%
 
-nested machine pvfs2_final_response_sm(
-    release,
-    send_resp,
-    cleanup)
+nested machine pvfs2_final_response_sm
 {
     state release
     {

Index: flush.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/flush.sm,v
diff -p -u -r1.18.4.5 -r1.18.4.6
--- flush.sm	18 Sep 2006 15:05:24 -0000	1.18.4.5
+++ flush.sm	11 Apr 2007 22:51:00 -0000	1.18.4.6
@@ -39,15 +39,7 @@ void flush_init_state_machine(void);
 
 %%
 
-machine pvfs2_flush_sm(
-    prelude,
-    flush_check_type,
-    kflush,
-    kflush_check_error,
-    bflush, 
-    bflush_check_error,
-    final_response,
-    cleanup)
+machine pvfs2_flush_sm
 {
     state prelude
     {

Index: get-attr.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/get-attr.sm,v
diff -p -u -r1.78.2.6 -r1.78.2.7
--- get-attr.sm	19 Oct 2006 22:17:15 -0000	1.78.2.6
+++ get-attr.sm	11 Apr 2007 22:51:00 -0000	1.78.2.7
@@ -77,19 +77,7 @@ static PINT_sm_action getattr_setup_op(
 
 %%
 
-nested machine pvfs2_get_attr_work_sm(
-    verify_attribs,
-    read_symlink_target,
-    read_metafile_hint,
-    read_metafile_datafile_handles_if_required,
-    read_metafile_distribution_if_required,
-    get_dirdata_handle,
-    get_dirent_count,
-    interpret_dirent_count,
-    interpret_metafile_hint,
-    get_dir_hint,
-    interpret_dir_hint,
-    setup_resp)
+nested machine pvfs2_get_attr_work_sm
 {
     state verify_attribs
     {
@@ -172,12 +160,7 @@ nested machine pvfs2_get_attr_work_sm(
     }
 }
 
-machine pvfs2_get_attr_sm(
-    prelude,
-    setup_op,
-    do_work,
-    final_response,
-    cleanup)
+machine pvfs2_get_attr_sm
 {
     state prelude
     {

Index: get-config.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/get-config.sm,v
diff -p -u -r1.34.4.5 -r1.34.4.6
--- get-config.sm	28 Sep 2006 18:35:43 -0000	1.34.4.5
+++ get-config.sm	11 Apr 2007 22:51:00 -0000	1.34.4.6
@@ -21,7 +21,7 @@ static PINT_sm_action getconfig_init(
 
 %%
 
-machine pvfs2_get_config_sm(prelude, init, final_response, cleanup)
+machine pvfs2_get_config_sm
 {
 	state prelude
 	{

Index: get-eattr.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/get-eattr.sm,v
diff -p -u -r1.10.4.7 -r1.10.4.8
--- get-eattr.sm	19 Oct 2006 22:17:15 -0000	1.10.4.7
+++ get-eattr.sm	11 Apr 2007 22:51:00 -0000	1.10.4.8
@@ -35,13 +35,7 @@ static PINT_sm_action geteattr_cleanup(
 
 %%
 
-machine pvfs2_get_eattr_sm(
-    prelude,
-    setup_resp,
-    read_eattrib,
-    check_resp,
-    final_response,
-    cleanup)
+machine pvfs2_get_eattr_sm
 {
     state prelude
     {

Index: io.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/io.sm,v
diff -p -u -r1.62.4.6 -r1.62.4.7
--- io.sm	19 Oct 2006 22:17:16 -0000	1.62.4.6
+++ io.sm	11 Apr 2007 22:51:00 -0000	1.62.4.7
@@ -32,14 +32,7 @@ static PINT_sm_action io_cleanup(
 
 %%
 
-machine pvfs2_io_sm(
-    prelude,
-    send_positive_ack,
-    send_negative_ack, 
-    start_flow,
-    cleanup,
-    release,
-    send_completion_ack)
+machine pvfs2_io_sm
 {
     state prelude
     {

Index: iterate-handles.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/iterate-handles.sm,v
diff -p -u -r1.5.4.5 -r1.5.4.6
--- iterate-handles.sm	18 Sep 2006 15:05:25 -0000	1.5.4.5
+++ iterate-handles.sm	11 Apr 2007 22:51:00 -0000	1.5.4.6
@@ -22,7 +22,7 @@ static PINT_sm_action iterate_handles_fi
 
 %%
 
-machine pvfs2_iterate_handles_sm(prelude, do_work, fill_resp, final_response, cleanup)
+machine pvfs2_iterate_handles_sm
 {
 	state prelude
 	{

Index: job-timer.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/job-timer.sm,v
diff -p -u -r1.3.4.6 -r1.3.4.7
--- job-timer.sm	28 Sep 2006 18:35:43 -0000	1.3.4.6
+++ job-timer.sm	11 Apr 2007 22:51:00 -0000	1.3.4.7
@@ -22,7 +22,7 @@ static PINT_sm_action job_timer_error(
 
 %%
 
-machine pvfs2_job_timer_sm(do_work, error)
+machine pvfs2_job_timer_sm
 {
 	state do_work 
 	{

Index: list-attr.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/list-attr.sm,v
diff -p -u -r1.3.2.1 -r1.3.2.2
--- list-attr.sm	18 Sep 2006 15:05:25 -0000	1.3.2.1
+++ list-attr.sm	11 Apr 2007 22:51:00 -0000	1.3.2.2
@@ -59,14 +59,7 @@ extern PINT_server_trove_keys_s Trove_Co
 
 %%
 
-nested machine pvfs2_list_attr_work_sm(
-    verify_attribs,
-    read_symlink_target,
-    read_metafile_datafile_handles_if_required,
-    read_metafile_distribution_if_required,
-    get_dirent_count,
-    interpret_dirent_count,
-    setup_resp)
+nested machine pvfs2_list_attr_work_sm
 {
     state verify_attribs
     {
@@ -116,12 +109,7 @@ nested machine pvfs2_list_attr_work_sm(
     }
 }
 
-machine pvfs2_list_attr_sm(
-    prelude,
-    setup_op,
-    do_work,
-    final_response,
-    cleanup)
+machine pvfs2_list_attr_sm
 {
     state prelude
     {

Index: list-eattr.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/list-eattr.sm,v
diff -p -u -r1.5.8.7 -r1.5.8.8
--- list-eattr.sm	19 Oct 2006 22:17:16 -0000	1.5.8.7
+++ list-eattr.sm	11 Apr 2007 22:51:00 -0000	1.5.8.8
@@ -35,13 +35,7 @@ static PINT_sm_action listeattr_cleanup(
 
 %%
 
-machine pvfs2_list_eattr_sm(
-    prelude,
-    setup_resp,
-    list_eattrib,
-    check_resp,
-    final_response,
-    cleanup)
+machine pvfs2_list_eattr_sm
 {
     state prelude
     {

Index: lookup.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/lookup.sm,v
diff -p -u -r1.45.4.8 -r1.45.4.9
--- lookup.sm	8 Jan 2007 16:47:32 -0000	1.45.4.8
+++ lookup.sm	11 Apr 2007 22:51:00 -0000	1.45.4.9
@@ -48,18 +48,7 @@ static PINT_sm_action lookup_setup_resp(
 
 %%
 
-machine pvfs2_lookup_sm(
-    prelude,
-    init,
-    read_object_metadata,
-    read_directory_entry_handle,
-    read_directory_entry,
-    verify_object_metadata,
-    read_directory_acls,
-    check_acls,
-    setup_resp,
-    final_response,
-    cleanup)
+machine pvfs2_lookup_sm
 {
     state prelude
     {
@@ -162,10 +151,10 @@ static PINT_sm_action lookup_init(
     char *ptr = NULL;
 
     gossip_debug(GOSSIP_SERVER_DEBUG, " STARTING LOOKUP REQUEST "
-                     "(path:%s)(fs_id:%d)(handle:%lld)(attrmask:%u)\n",
+                     "(path:%s)(fs_id:%d)(handle:%llu)(attrmask:%u)\n",
                      s_op->req->u.lookup_path.path,
                      s_op->req->u.lookup_path.fs_id,
-                     s_op->req->u.lookup_path.starting_handle,
+                     llu(s_op->req->u.lookup_path.starting_handle),
                      s_op->req->u.lookup_path.attrmask);
 
     /* fill in the lookup portion of the PINT_server_op */
@@ -474,16 +463,23 @@ static PINT_sm_action lookup_check_acls(
        find the segment that we should look up in the directory */
     if (js_p->error_code == 0)
     {
-        int ret = PINT_string_next_segment(
+        js_p->error_code = PINT_string_next_segment(
             s_op->req->u.lookup_path.path, &s_op->u.lookup.segp,
             &s_op->u.lookup.segstate);
 
-        assert(ret == 0);
-
-        gossip_debug(GOSSIP_SERVER_DEBUG, "  after ACL check "
-                    "object is a directory; will be "
-                     "looking for handle for segment \"%s\" in a bit\n",
-                     s_op->u.lookup.segp);
+        if(js_p->error_code != 0)
+        {
+            gossip_err("PINT_string_next_segment failed to get the"
+                       "next segment to lookup from the path: %s\n",
+                       s_op->req->u.lookup_path.path);
+        }
+        else
+        {
+            gossip_debug(GOSSIP_SERVER_DEBUG, "  after ACL check "
+                         "object is a directory; will be "
+                         "looking for handle for segment \"%s\" in a bit\n",
+                         s_op->u.lookup.segp);
+        }
     }
 cleanup:
     if (s_op->val.buffer) 

Index: mgmt-get-dirdata-handle.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/mgmt-get-dirdata-handle.sm,v
diff -p -u -r1.4.4.7 -r1.4.4.8
--- mgmt-get-dirdata-handle.sm	19 Oct 2006 22:17:16 -0000	1.4.4.7
+++ mgmt-get-dirdata-handle.sm	11 Apr 2007 22:51:00 -0000	1.4.4.8
@@ -23,12 +23,7 @@ static PINT_sm_action mgmt_get_dirdata_h
 
 %%
 
-machine pvfs2_mgmt_get_dirdata_handle_sm(
-    prelude,
-    get_dirdata_handle_from_parent,
-    get_dirdata_handle_setup_resp,
-    final_response,
-    cleanup)
+machine pvfs2_mgmt_get_dirdata_handle_sm
 {
     state prelude
     {

Index: mgmt-remove-dirent.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/mgmt-remove-dirent.sm,v
diff -p -u -r1.7.2.7 -r1.7.2.8
--- mgmt-remove-dirent.sm	19 Oct 2006 22:17:16 -0000	1.7.2.7
+++ mgmt-remove-dirent.sm	11 Apr 2007 22:51:00 -0000	1.7.2.8
@@ -23,12 +23,7 @@ static PINT_sm_action mgmt_remove_dirent
 
 %%
 
-machine pvfs2_mgmt_remove_dirent_sm(
-    prelude,
-    get_dirdata_handle_from_parent,
-    remove_dirent,
-    final_response,
-    cleanup)
+machine pvfs2_mgmt_remove_dirent_sm
 {
     state prelude
     {

Index: mgmt-remove-object.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/mgmt-remove-object.sm,v
diff -p -u -r1.8.4.7 -r1.8.4.8
--- mgmt-remove-object.sm	19 Oct 2006 22:17:16 -0000	1.8.4.7
+++ mgmt-remove-object.sm	11 Apr 2007 22:51:00 -0000	1.8.4.8
@@ -21,11 +21,7 @@ static PINT_sm_action mgmt_remove_cleanu
 
 %%
 
-machine pvfs2_mgmt_remove_object_sm(
-    prelude,
-    remove_dspace,
-    final_response,
-    cleanup)
+machine pvfs2_mgmt_remove_object_sm
 {
     state prelude
     {

Index: mkdir.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/mkdir.sm,v
diff -p -u -r1.43.2.6 -r1.43.2.7
--- mkdir.sm	19 Oct 2006 22:17:16 -0000	1.43.2.6
+++ mkdir.sm	11 Apr 2007 22:51:00 -0000	1.43.2.7
@@ -32,11 +32,7 @@ static PINT_sm_action mkdir_prep_sm(
 
 %%
 
-nested machine pvfs2_mkdir_work_sm(create, 
-                                   set_attrib,
-                                   create_dirdata_dspace, 
-                                   write_dirdata_handle, 
-                                   err_msg)
+nested machine pvfs2_mkdir_work_sm
 {
     state create
     {
@@ -73,12 +69,7 @@ nested machine pvfs2_mkdir_work_sm(creat
     }
 }
 
-machine pvfs2_mkdir_sm(
-    prelude,
-    prep_sm,
-    work,
-    final_response,
-    cleanup)
+machine pvfs2_mkdir_sm
 {
     state prelude
     {

Index: noop.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/noop.sm,v
diff -p -u -r1.4.4.3 -r1.4.4.4
--- noop.sm	16 Jul 2006 21:42:58 -0000	1.4.4.3
+++ noop.sm	11 Apr 2007 22:51:00 -0000	1.4.4.4
@@ -17,7 +17,7 @@ static PINT_sm_action noop_cleanup(
 
 %%
 
-machine pvfs2_noop_sm(prelude, final_response, cleanup)
+machine pvfs2_noop_sm
 {
 	state prelude
 	{

Index: perf-mon.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/perf-mon.sm,v
diff -p -u -r1.11.4.4 -r1.11.4.5
--- perf-mon.sm	16 Jul 2006 21:42:58 -0000	1.11.4.4
+++ perf-mon.sm	11 Apr 2007 22:51:00 -0000	1.11.4.5
@@ -32,7 +32,7 @@ static int reallocate_static_arrays_if_n
 
 %%
 
-machine pvfs2_perf_mon_sm(prelude, do_work, final_response, cleanup)
+machine pvfs2_perf_mon_sm
 {
 	state prelude
 	{

Index: perf-update.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/perf-update.sm,v
diff -p -u -r1.8.4.6 -r1.8.4.7
--- perf-update.sm	18 Jul 2006 21:23:53 -0000	1.8.4.6
+++ perf-update.sm	11 Apr 2007 22:51:00 -0000	1.8.4.7
@@ -22,7 +22,7 @@ static PINT_sm_action perf_update_error(
 
 %%
 
-machine pvfs2_perf_update_sm(do_work, error)
+machine pvfs2_perf_update_sm
 {
 	state do_work 
 	{

Index: prelude.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/prelude.sm,v
diff -p -u -r1.60.4.6 -r1.60.4.7
--- prelude.sm	19 Oct 2006 22:17:16 -0000	1.60.4.6
+++ prelude.sm	11 Apr 2007 22:51:00 -0000	1.60.4.7
@@ -39,12 +39,7 @@ enum {
 
 %%
 
-nested machine pvfs2_prelude_sm(
-    req_sched,
-    getattr_if_needed,
-    perm_check,
-    check_acls_if_needed,
-    check_acls)
+nested machine pvfs2_prelude_sm
 {
     state req_sched
     {
@@ -202,10 +197,18 @@ static void get_fs_intent(struct PVFS_se
             *fsid = req->u.io.fs_id;
             *read_only = (req->u.io.io_type == PVFS_IO_READ) ? 1 : 0;
             break;
+        case PVFS_SERV_SMALL_IO:
+            *fsid = req->u.small_io.fs_id;
+            *read_only = (req->u.small_io.io_type == PVFS_IO_READ) ? 1 : 0;
+            break;
         case PVFS_SERV_GETATTR:
             *fsid = req->u.getattr.fs_id;
             *read_only = 1;
             break;
+        case PVFS_SERV_LISTATTR:
+            *fsid = req->u.listattr.fs_id;
+            *read_only = 1;
+            break;
         case PVFS_SERV_SETATTR:
             *fsid = req->u.setattr.fs_id;
             *read_only = 0;
@@ -294,7 +297,8 @@ static void get_fs_intent(struct PVFS_se
         case PVFS_SERV_MGMT_NOOP:
         case PVFS_SERV_WRITE_COMPLETION:
         case PVFS_SERV_GETCONFIG:
-        default:
+        case PVFS_SERV_NUM_OPS:
+        case PVFS_SERV_INVALID:
             *fsid = PVFS_FS_ID_NULL;
             *read_only = -1;
             break;
@@ -465,6 +469,8 @@ static PINT_sm_action prelude_perm_check
     PVFS_gid translated_gid = s_op->req->credentials.gid;
     PVFS_fs_id  fsid;
     int  rdonly = -1;
+    int squashed_flag = 0;
+    int skip_acl_flag = 0;
 
     /* moved gossip server debug output to end of state, so we can report
      * resulting status value.
@@ -500,6 +506,7 @@ static PINT_sm_action prelude_perm_check
         js_p->error_code = 0;
     }
 #endif
+    
     get_fs_intent(s_op->req, &fsid, &rdonly);
     if (fsid != PVFS_FS_ID_NULL)
     {
@@ -518,6 +525,7 @@ static PINT_sm_action prelude_perm_check
             if (translate_ids(fsid, s_op->req->credentials.uid, s_op->req->credentials.gid,
                 &translated_uid, &translated_gid, s_op->addr) == 1)
             {
+                squashed_flag = 1;
                 s_op->req->credentials.uid = translated_uid;
                 s_op->req->credentials.gid = translated_gid;
                 /* in the case of a setattr, translate the ids as well right here */
@@ -620,7 +628,25 @@ static PINT_sm_action prelude_perm_check
             }
             break;
         case PINT_SERVER_CHECK_NONE:
-            js_p->error_code = 0;
+            if(squashed_flag && !rdonly && ((s_op->req->op == PVFS_SERV_IO) ||
+                (s_op->req->op == PVFS_SERV_SMALL_IO) ||
+                (s_op->req->op == PVFS_SERV_TRUNCATE)))
+            {
+                /* special case:
+                 * If we have been squashed, deny write permission to the
+                 * file system.  At the datafile level we don't have enough
+                 * attribute information to figure out if the nobody/guest
+                 * user has permission to write or not, so we disallow all
+                 * writes to be safe.  Not perfect semantics, but better
+                 * than being too permissive.
+                 */
+                skip_acl_flag = 1;
+                js_p->error_code = -PVFS_EACCES;
+            }
+            else
+            {
+                js_p->error_code = 0;
+            }
             break;
         case PINT_SERVER_CHECK_INVALID:
             js_p->error_code = -PVFS_EINVAL;
@@ -638,7 +664,7 @@ static PINT_sm_action prelude_perm_check
         PINT_map_server_op_to_string(s_op->req->op),
 	js_p->error_code);
     /* If regular checks fail, we need to run acl checks */
-    if (js_p->error_code == -PVFS_EACCES)
+    if (js_p->error_code == -PVFS_EACCES && !skip_acl_flag)
         js_p->error_code = PRELUDE_RUN_ACL_CHECKS;
     return SM_ACTION_COMPLETE;
 }

Index: proto-error.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/proto-error.sm,v
diff -p -u -r1.4.4.5 -r1.4.4.6
--- proto-error.sm	18 Jul 2006 21:23:53 -0000	1.4.4.5
+++ proto-error.sm	11 Apr 2007 22:51:01 -0000	1.4.4.6
@@ -20,7 +20,7 @@ static PINT_sm_action proto_error_init(
 
 %%
 
-machine pvfs2_proto_error_sm(init, cleanup)
+machine pvfs2_proto_error_sm
 {
 	state init
 	{

Index: pvfs2-server.c
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/pvfs2-server.c,v
diff -p -u -r1.217.2.13 -r1.217.2.14
--- pvfs2-server.c	9 Nov 2006 15:52:50 -0000	1.217.2.13
+++ pvfs2-server.c	11 Apr 2007 22:51:01 -0000	1.217.2.14
@@ -457,8 +457,8 @@ int main(int argc, char **argv)
         goto server_shutdown;
     }
 
-    gossip_debug(GOSSIP_SERVER_DEBUG,
-                 "PVFS2 Server version %s starting.\n", PVFS2_VERSION);
+    gossip_debug_fp(stderr, 'S', GOSSIP_LOGSTAMP_DATETIME,
+                    "PVFS2 Server version %s starting...\n", PVFS2_VERSION);
 
     fs_conf = ((argc >= optind) ? argv[optind] : NULL);
     server_conf = ((argc >= (optind + 1)) ? argv[optind + 1] : NULL);
@@ -585,6 +585,9 @@ int main(int argc, char **argv)
         goto server_shutdown;
     }
 
+    gossip_debug_fp(stderr, 'S', GOSSIP_LOGSTAMP_DATETIME,
+                    "PVFS2 Server ready.\n");
+
     /* Initialization complete; process server requests indefinitely. */
     for ( ;; )  
     {
@@ -2032,6 +2035,7 @@ static TROVE_method_id trove_coll_to_met
     return fs_conf->trove_method;
 }
 
+#ifndef GOSSIP_DISABLE_DEBUG
 void PINT_server_access_debug(PINT_server_op * s_op,
                               int64_t debug_mask,
                               const char * format,
@@ -2069,6 +2073,7 @@ void PINT_server_access_debug(PINT_serve
         va_end(ap);
     }
 }
+#endif
 
 /*
  * PINT_map_server_op_to_string()

Index: pvfs2-server.h
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/pvfs2-server.h,v
diff -p -u -r1.134.2.8 -r1.134.2.9
--- pvfs2-server.h	19 Oct 2006 22:17:16 -0000	1.134.2.8
+++ pvfs2-server.h	11 Apr 2007 22:51:01 -0000	1.134.2.9
@@ -245,12 +245,11 @@ struct PINT_server_remove_op
                                    * the event that we are removing a
                                    * directory */
     PVFS_size dirent_count;
-    PVFS_ds_keyval * key_array;
+    PVFS_ds_keyval key;
     PVFS_ds_position pos;
     int key_count;
     int index;
     int remove_keyvals_state;
-    PVFS_ds_keyval_handle_info keyval_handle_info;
 };
 
 struct PINT_server_mgmt_remove_dirent_op

Index: readdir.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/readdir.sm,v
diff -p -u -r1.44.4.6 -r1.44.4.7
--- readdir.sm	19 Oct 2006 22:17:16 -0000	1.44.4.6
+++ readdir.sm	11 Apr 2007 22:51:01 -0000	1.44.4.7
@@ -35,14 +35,7 @@ static PINT_sm_action readdir_setup_resp
 
 %%
 
-machine pvfs2_readdir_sm(
-    prelude,
-    iterate_on_entries,
-    read_dirdata_handle,
-    verify_directory_metadata,
-    setup_resp,
-    final_response,
-    cleanup)
+machine pvfs2_readdir_sm
 {
     state prelude
     {
@@ -212,9 +205,9 @@ static PINT_sm_action readdir_iterate_on
 
     gossip_debug(
         GOSSIP_READDIR_DEBUG, " - iterating keyvals: [%llu,%d], "
-        "\n\ttoken=%d, count=%d\n",
+        "\n\ttoken=%llu, count=%d\n",
         llu(s_op->u.readdir.dirent_handle), s_op->req->u.readdir.fs_id,
-        s_op->req->u.readdir.token, 
+        llu(s_op->req->u.readdir.token),
         s_op->req->u.readdir.dirent_count);
 
     ret = job_trove_keyval_iterate(

Index: remove.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/remove.sm,v
diff -p -u -r1.48.2.6 -r1.48.2.7
--- remove.sm	19 Oct 2006 22:17:16 -0000	1.48.2.6
+++ remove.sm	11 Apr 2007 22:51:01 -0000	1.48.2.7
@@ -81,14 +81,7 @@ extern PINT_server_trove_keys_s Trove_Co
 
 %%
 
-nested machine pvfs2_remove_work_sm(
-    check_object_type,
-    verify_object_metadata,
-    remove_dspace,
-    read_dirdata_handle,
-    getattr_of_dirdata_handle,
-    check_dirdata_entries,
-    remove_dirdata_dspace)
+nested machine pvfs2_remove_work_sm
 {
 
     state check_object_type
@@ -142,12 +135,7 @@ nested machine pvfs2_remove_work_sm(
 
 }
 
-machine pvfs2_remove_sm(
-    prelude,
-    setup_work,
-    work,
-    final_response,
-    cleanup)
+machine pvfs2_remove_sm
 {
     state prelude
     {
@@ -294,11 +282,15 @@ static PINT_sm_action remove_get_dirent_
     }
     js_p->error_code = 0;
 
-    ret = job_trove_keyval_get_handle_info(
+
+    ret = job_trove_keyval_iterate_keys(
         s_op->u.remove.fs_id,
         s_op->u.remove.dirdata_handle,
-        TROVE_KEYVAL_HANDLE_COUNT,
-        &s_op->u.remove.keyval_handle_info,
+        PVFS_ITERATE_START,
+        &s_op->u.remove.key,
+        1,
+        0,
+        NULL,
         smcb,
         0,
         js_p,
@@ -314,15 +306,14 @@ static PINT_sm_action remove_check_dirda
     struct PINT_server_op *s_op = PINT_sm_frame(smcb, PINT_FRAME_CURRENT);
     if (js_p->error_code == 0)
     {
-        if (s_op->u.remove.keyval_handle_info.count > 0)
+        if(js_p->count > 0)
         {
             gossip_debug(GOSSIP_SERVER_DEBUG, 
                          " detected non-empty "
-                         "directory (fsid: %u, handle: %llu, size: %d) "
+                         "directory (fsid: %u, handle: %llu) "
                          "-- returning error\n",
                          s_op->u.remove.fs_id,
-                         llu(s_op->u.remove.handle),
-                         s_op->u.remove.keyval_handle_info.count);
+                         llu(s_op->u.remove.handle));
             js_p->error_code = -PVFS_ENOTEMPTY;
         }
     }
@@ -330,12 +321,10 @@ static PINT_sm_action remove_check_dirda
     {
         /* no entries because count is 0 */
         js_p->error_code = 0;
-        s_op->u.remove.keyval_handle_info.count = 0;
     }
 
     /* setup position for next state (remove[_dirdata]_keyvals) */
-    s_op->u.remove.pos = PVFS_ITERATE_START;
-     return SM_ACTION_COMPLETE;
+    return SM_ACTION_COMPLETE;
 }
 
 /*
@@ -357,7 +346,7 @@ static PINT_sm_action remove_remove_dird
     ret = job_trove_dspace_remove(
         s_op->u.remove.fs_id,
         s_op->u.remove.dirdata_handle,
-        TROVE_SYNC,
+        0,  /* don't sync here, we do a dspace remove on the dir handle next */
         smcb,
         0,
         js_p,

Index: rmdirent.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/rmdirent.sm,v
diff -p -u -r1.47.2.7 -r1.47.2.8
--- rmdirent.sm	19 Oct 2006 22:17:16 -0000	1.47.2.7
+++ rmdirent.sm	11 Apr 2007 22:51:01 -0000	1.47.2.8
@@ -36,16 +36,7 @@ static PINT_sm_action rmdirent_setup_res
 
 %%
 
-machine pvfs2_rmdirent_sm(
-    prelude,
-    verify_parent_metadata_and_read_directory_entry_handle,
-    remove_directory_entry,
-    remove_directory_entry_failure,
-    check_for_req_dir_update,
-    update_directory_attr,
-    setup_resp,
-    final_response,
-    cleanup)
+machine pvfs2_rmdirent_sm
 {
     state prelude
     {

Index: set-attr.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/set-attr.sm,v
diff -p -u -r1.63.4.6 -r1.63.4.7
--- set-attr.sm	19 Oct 2006 22:17:16 -0000	1.63.4.6
+++ set-attr.sm	11 Apr 2007 22:51:01 -0000	1.63.4.7
@@ -35,15 +35,7 @@ static PINT_sm_action setattr_verify_att
 
 %%
 
-machine pvfs2_set_attr_sm(
-    prelude,
-    cleanup,
-    verify_attribs,
-    write_metafile_datafile_handles_if_required,
-    write_metafile_distribution_if_required,
-    write_symlink_target_if_required,
-    setobj_attrib,
-    final_response)
+machine pvfs2_set_attr_sm
 {
     state prelude
     {

Index: set-eattr.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/set-eattr.sm,v
diff -p -u -r1.10.6.6 -r1.10.6.7
--- set-eattr.sm	18 Sep 2006 15:05:26 -0000	1.10.6.6
+++ set-eattr.sm	11 Apr 2007 22:51:02 -0000	1.10.6.7
@@ -25,12 +25,7 @@ static PINT_sm_action seteattr_cleanup(
 
 %%
 
-machine pvfs2_set_eattr_sm(
-    prelude,
-    verify_eattrib,
-    setobj_eattrib,
-    cleanup,
-    final_response)
+machine pvfs2_set_eattr_sm
 {
     state prelude
     {

Index: setparam.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/setparam.sm,v
diff -p -u -r1.28.4.6 -r1.28.4.7
--- setparam.sm	19 Oct 2006 22:17:16 -0000	1.28.4.6
+++ setparam.sm	11 Apr 2007 22:51:02 -0000	1.28.4.7
@@ -25,11 +25,7 @@ static int check_fs_id(PVFS_fs_id fs_id)
 
 %%
 
-machine pvfs2_setparam_sm(
-    prelude,
-    work,
-    final_response,
-    cleanup)
+machine pvfs2_setparam_sm
 {
     state prelude
     {

Index: small-io.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/small-io.sm,v
diff -p -u -r1.15.8.6 -r1.15.8.7
--- small-io.sm	18 Sep 2006 15:05:26 -0000	1.15.8.6
+++ small-io.sm	11 Apr 2007 22:51:02 -0000	1.15.8.7
@@ -27,12 +27,7 @@ static PINT_sm_action small_io_cleanup(
 
 %%
 
-machine pvfs2_small_io_sm(
-    prelude,
-    start_job,
-    check_size,
-    send_response,
-    cleanup)
+machine pvfs2_small_io_sm
 {
     state prelude
     {

Index: statfs.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/statfs.sm,v
diff -p -u -r1.13.4.4 -r1.13.4.5
--- statfs.sm	16 Jul 2006 21:42:59 -0000	1.13.4.4
+++ statfs.sm	11 Apr 2007 22:51:02 -0000	1.13.4.5
@@ -26,11 +26,7 @@ static PINT_sm_action statfs_do_statfs(
 
 %%
 
-machine pvfs2_statfs_sm(
-    prelude,
-    do_statfs,
-    final_response,
-    cleanup)
+machine pvfs2_statfs_sm
 {
     state prelude
     {

Index: truncate.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/truncate.sm,v
diff -p -u -r1.5.4.4 -r1.5.4.5
--- truncate.sm	18 Jul 2006 21:23:53 -0000	1.5.4.4
+++ truncate.sm	11 Apr 2007 22:51:02 -0000	1.5.4.5
@@ -23,12 +23,7 @@ static PINT_sm_action truncate_cleanup(
 
 %%
 
-machine pvfs2_truncate_sm(
-    prelude, 
-    resize,
-    check_error,
-    final_response, 
-    cleanup)
+machine pvfs2_truncate_sm
 {
     state prelude
     {

Index: unexpected.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/Attic/unexpected.sm,v
diff -p -u -r1.1.2.1 -r1.1.2.2
--- unexpected.sm	28 Sep 2006 18:37:39 -0000	1.1.2.1
+++ unexpected.sm	11 Apr 2007 22:51:02 -0000	1.1.2.2
@@ -20,7 +20,7 @@ static PINT_sm_action unexpected_map(
 
 %%
 
-machine pvfs2_unexpected_sm(post_unexpected, map_request)
+machine pvfs2_unexpected_sm
 {
 	state post_unexpected
 	{



More information about the Pvfs2-cvs mailing list