[Pvfs2-cvs] commit by slang in pvfs2/src/server: get-eattr.sm

CVS commit program cvs at parl.clemson.edu
Fri May 29 18:20:00 EDT 2009


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

Modified Files:
      Tag: aattrs-branch
	get-eattr.sm 
Log Message:
gotta serialize active geteattrs.


Index: get-eattr.sm
===================================================================
RCS file: /projects/cvsroot/pvfs2/src/server/get-eattr.sm,v
diff -p -u -r1.21.16.1 -r1.21.16.2
--- get-eattr.sm	29 May 2009 21:42:01 -0000	1.21.16.1
+++ get-eattr.sm	29 May 2009 22:20:00 -0000	1.21.16.2
@@ -48,6 +48,13 @@ machine pvfs2_get_eattr_sm
     state active_setup
     {
         run geteattr_active_setup;
+        success => active_reqsched;
+        default => final_response;
+    }
+
+    state active_reqsched
+    {
+        run geteattr_active_reqsched;
         success => next_active;
         default => final_response;
     }
@@ -55,13 +62,20 @@ machine pvfs2_get_eattr_sm
     state next_active
     {
         run geteattr_next_active;
-        ACTIVE_DONE => check_resp;
+        ACTIVE_DONE => active_release;
         ACTIVE_FETCH_AND_ADD => active_faa;
         ACTIVE_FETCH_AND_SUBTRACT => active_fas;
         ACTIVE_COMPARE_AND_SWAP => active_cas;
         default => final_response;
     }
 
+    state active_release
+    {
+        run geteattr_active_release;
+        success => check_resp;
+        default => final_response;
+    }
+
     state active_faa
     {
         run geteattr_active_fetch;
@@ -189,6 +203,32 @@ static PINT_sm_action geteattr_active_se
 
     s_op->u.eattr.active.index = 0;
     return SM_ACTION_COMPLETE;
+}
+
+static PINT_sm_action geteattr_active_reqsched(
+        struct PINT_smcb *smcb, job_status_s *js_p)
+{
+    struct PINT_server_op *s_op = PINT_sm_frame(smcb, PINT_FRAME_CURRENT);
+    js_p->error_code = 0;
+
+    return job_req_sched_post(s_op->op,
+                              s_op->req->u.geteattr.fs_id,
+                              s_op->req->u.geteattr.handle,
+                              PINT_SERVER_REQ_MODIFY,
+                              PINT_SERVER_REQ_SCHEDULE,
+                              smcb, 0, js_p,
+                              &(s_op->scheduled_id), server_job_context);
+}
+
+static PINT_sm_action geteattr_active_release(
+        struct PINT_smcb *smcb, job_status_s *js_p)
+{
+    job_id_t tmp_id;
+    struct PINT_server_op *s_op = PINT_sm_frame(smcb, PINT_FRAME_CURRENT);
+    js_p->error_code = 0;
+
+    return job_req_sched_release(s_op->scheduled_id,
+                                 smcb, 0, js_p, &tmp_id, server_job_context);
 }
 
 #define FAA "active.faa("



More information about the Pvfs2-cvs mailing list