From 0ea1ab8b9c37e587a3f9c9f456e71509fba2027a Mon Sep 17 00:00:00 2001
From: zhanghc <zhanghc>
Date: Tue, 11 Nov 2008 02:50:51 +0000
Subject: [PATCH] b=17495

move the check of recovering state of the OST in osc_precreate
out of "if (oscc->oscc_last_id < oscc->oscc_next_id)" condition
so create operation don't use recovering OST

i=adilger
i=nathan.rutman
---
 lustre/osc/osc_create.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/lustre/osc/osc_create.c b/lustre/osc/osc_create.c
index 07fccc9d0c..b839e9790f 100644
--- a/lustre/osc/osc_create.c
+++ b/lustre/osc/osc_create.c
@@ -280,6 +280,9 @@ int osc_precreate(struct obd_export *exp)
         if (imp != NULL && imp->imp_deactive)
                 RETURN(1000);
 
+        if (oscc_recovering(oscc))
+                RETURN(2);
+
         if (oscc->oscc_last_id < oscc->oscc_next_id) {
                 spin_lock(&oscc->oscc_lock);
                 if (oscc->oscc_flags & OSCC_FLAG_NOSPC) {
@@ -290,11 +293,6 @@ int osc_precreate(struct obd_export *exp)
                         spin_unlock(&oscc->oscc_lock);
                         RETURN(1);
                 }
-                if (oscc->oscc_flags & OSCC_FLAG_RECOVERING) {
-                        spin_unlock(&oscc->oscc_lock);
-                        RETURN(2);
-                }
-
                 if (oscc->oscc_flags & OSCC_FLAG_CREATING) {
                         spin_unlock(&oscc->oscc_lock);
                         RETURN(1);
-- 
GitLab