diff --git a/lustre/ChangeLog b/lustre/ChangeLog
index 3375cb0d22c8de9f91d357bc9f108ad90176e1be..d71a0a99d75407294c8d9d24922dc8be21fadde7 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 2755f731a901dcb692b7a9bc2dcd626c51a262e7..ad2a2f951aca9019216666e6fd06e7b899ce14f1 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;