[Pvfs2-cvs] commit by slang in pvfs2/src/client/sysint: client-state-machine.c

CVS commit program cvs at parl.clemson.edu
Thu Feb 14 18:15:26 EST 2008

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

Modified Files:
Log Message:
Fix segfault caused by latest state machine patch.  The state machine patch was allowing our sysint operations to complete immediately, but the smcb was still being added to the completion list before being freed.  This fix now prevents an immedate completion state machine from being added to the completion list entirely, and allows the client core to send the downcall directly on immediate completion.

Index: client-state-machine.c
RCS file: /projects/cvsroot/pvfs2/src/client/sysint/client-state-machine.c,v
diff -p -u -r1.93 -r1.94
--- client-state-machine.c	16 Jan 2008 23:57:36 -0000	1.93
+++ client-state-machine.c	14 Feb 2008 23:15:26 -0000	1.94
@@ -301,7 +301,8 @@ int client_state_machine_terminate(
     if (!((PINT_smcb_op(smcb) == PVFS_SYS_IO) &&
             (PINT_smcb_cancelled(smcb)) &&
-            (cancelled_io_jobs_are_pending(smcb))))
+            (cancelled_io_jobs_are_pending(smcb))) &&
+        !PINT_smcb_immediate_completion(smcb))
                 "add smcb %p to completion list\n", smcb);

More information about the Pvfs2-cvs mailing list