Whamcloud - gitweb
b=22827 restore locking for thread->t_flags
authorAlexander.Zarochentsev <Alexander.Zarochentsev@sun.com>
Thu, 20 May 2010 07:33:48 +0000 (11:33 +0400)
committerRobert Read <robert.read@oracle.com>
Thu, 20 May 2010 07:50:34 +0000 (00:50 -0700)
i=tappro
i=robert.read

lustre/ptlrpc/service.c

index a1d1060..e8e93cf 100644 (file)
@@ -2141,16 +2141,14 @@ out:
         CDEBUG(D_RPCTRACE, "service thread [ %p : %u ] %d exiting: rc %d\n",
                thread, thread->t_pid, thread->t_id, rc);
 
-        if (st.running) {
-                cfs_spin_lock(&svc->srv_lock);
+        cfs_spin_lock(&svc->srv_lock);
+        if (st.running)
                 svc->srv_threads_running--;
-                cfs_spin_unlock(&svc->srv_lock);
-        }
-
         thread->t_id = rc;
         thread->t_flags = SVC_STOPPED;
-
         cfs_waitq_signal(&thread->t_ctl_waitq);
+        cfs_spin_unlock(&svc->srv_lock);
+
         return rc;
 }