From 906d827634bb87dc0036ab596d7fab95739f814e Mon Sep 17 00:00:00 2001
From: deen <deen>
Date: Mon, 19 Nov 2007 18:50:38 +0000
Subject: [PATCH] OST in recovery should not be discarded by MDS in
 alloc_qos(), otherwise we can get ENOSP while fs is not full.

b=13976
i=shadow
i=johann
---
 lustre/ChangeLog     | 7 +++++++
 lustre/lov/lov_qos.c | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/lustre/ChangeLog b/lustre/ChangeLog
index 3375cb0d22..d71a0a99d7 100644
--- a/lustre/ChangeLog
+++ b/lustre/ChangeLog
@@ -101,6 +101,13 @@ Details    : Concurrent access to the same directory from multiple clients with
 	     ll_readdir(). i_version must be increased every time the lock is
 	     cancelled to ensure a revalidate is done.
 
+Severity   : normal
+Frequency  : always
+Bugzilla   : 13976
+Description: touch file failed when fs is not full
+Details    : OST in recovery should not be discarded by MDS in alloc_qos(),
+             otherwise we can get ENOSP while fs is not full.
+
 --------------------------------------------------------------------------------
 
 2007-10-26         Cluster File Systems, Inc. <info@clusterfs.com>
diff --git a/lustre/lov/lov_qos.c b/lustre/lov/lov_qos.c
index 2755f731a9..ad2a2f951a 100644
--- a/lustre/lov/lov_qos.c
+++ b/lustre/lov/lov_qos.c
@@ -691,7 +691,7 @@ static int alloc_qos(struct obd_export *exp, int *idx_arr, int *stripe_cnt,
                 if (OBD_FAIL_CHECK(OBD_FAIL_MDS_OSC_PRECREATE) && i == 0)
                         continue;
 
-                if (obd_precreate(lov->lov_tgts[i]->ltd_exp, 1) >= 2)
+                if (obd_precreate(lov->lov_tgts[i]->ltd_exp, 1) > 2)
                         continue;
 
                 lov->lov_tgts[i]->ltd_qos.ltq_usable = 1;
-- 
GitLab