Whamcloud - gitweb
b=20748
[fs/lustre-release.git] / lustre / ptlrpc / target.c
index 0be3950..0b6b2fe 100644 (file)
@@ -276,7 +276,8 @@ void lut_boot_epoch_update(struct lu_target *lut)
          */
         list_for_each_entry(req, &client_list, rq_list) {
                 LASSERT(!req->rq_export->exp_delayed);
-                lut_client_epoch_update(&env, lut, req->rq_export);
+                if (!req->rq_export->exp_vbr_failed)
+                        lut_client_epoch_update(&env, lut, req->rq_export);
         }
         /** return list back at once */
         spin_lock_bh(&lut->lut_obd->obd_processing_task_lock);
@@ -295,20 +296,20 @@ void lut_cb_last_committed(struct lu_target *lut, __u64 transno,
                            void *data, int err)
 {
         struct obd_export *exp = data;
-
+        LASSERT(exp->exp_obd == lut->lut_obd);
         spin_lock(&lut->lut_translock);
         if (transno > lut->lut_obd->obd_last_committed)
                 lut->lut_obd->obd_last_committed = transno;
 
         LASSERT(exp);
-        if (!lut->lut_obd->obd_stopping &&
-            transno > exp->exp_last_committed) {
+        if (transno > exp->exp_last_committed) {
                 exp->exp_last_committed = transno;
                 spin_unlock(&lut->lut_translock);
                 ptlrpc_commit_replies(exp);
         } else {
                 spin_unlock(&lut->lut_translock);
         }
+        class_export_cb_put(exp);
         if (transno)
                 CDEBUG(D_HA, "%s: transno "LPD64" is committed\n",
                        lut->lut_obd->obd_name, transno);