diff --git a/lustre/mgc/mgc_request.c b/lustre/mgc/mgc_request.c
index d6c15c7778290a291ced786e865ced8d2698b739..63bdd9ae67983713c08a359fe44c6304346856c0 100644
--- a/lustre/mgc/mgc_request.c
+++ b/lustre/mgc/mgc_request.c
@@ -336,10 +336,9 @@ static int mgc_requeue_add(struct config_llog_data *cld, int later)
         CDEBUG(D_INFO, "log %s: requeue (l=%d r=%d sp=%d st=%x)\n", 
                cld->cld_logname, later, atomic_read(&cld->cld_refcount),
                cld->cld_stopping, rq_state);
-        
+
         /* Hold lock for rq_state */
         spin_lock(&config_list_lock);
-        cld->cld_lostlock = 1;
 
         if (cld->cld_stopping || (rq_state & RQ_STOP)) {
                 spin_unlock(&config_list_lock);
@@ -347,6 +346,8 @@ static int mgc_requeue_add(struct config_llog_data *cld, int later)
                 RETURN(0);
         }
 
+        cld->cld_lostlock = 1;
+
         if (!(rq_state & RQ_RUNNING)) {
                 LASSERT(rq_state == 0);
                 rq_state = RQ_RUNNING | (later ? RQ_LATER : RQ_NOW);