From b60041da5bc668c18ac186081acb71a62f0a97d2 Mon Sep 17 00:00:00 2001
From: shadow <shadow>
Date: Mon, 24 Nov 2008 12:26:41 +0000
Subject: [PATCH] Drop slow OSCs if we can, but not for requested start idx.
 This means "if OSC is slow and it is not the requested start OST, then it can
 be skipped, otherwise skip it only if it is inactive/recovering/out-of-space.

Branch HEAD
b=16081
i=shadow
i=green
---
 libcfs/libcfs/linux/linux-proc.c | 1 -
 lustre/ChangeLog                 | 8 ++++++++
 lustre/lov/lov_qos.c             | 8 ++++++--
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/libcfs/libcfs/linux/linux-proc.c b/libcfs/libcfs/linux/linux-proc.c
index 6dd620aae1..ec6ab0c33b 100644
--- a/libcfs/libcfs/linux/linux-proc.c
+++ b/libcfs/libcfs/linux/linux-proc.c
@@ -476,7 +476,6 @@ static cfs_sysctl_table_t top_table[] = {
 int insert_proc(void)
 {
 #ifdef CONFIG_SYSCTL
-	printk("call register\n");
         if (lnet_table_header == NULL)
                 lnet_table_header = cfs_register_sysctl_table(top_table, 0);
 #endif
diff --git a/lustre/ChangeLog b/lustre/ChangeLog
index 0404d19b85..9b1a226523 100644
--- a/lustre/ChangeLog
+++ b/lustre/ChangeLog
@@ -13,6 +13,14 @@ tbd  Sun Microsystems, Inc.
 	 removed cwd "./" (refer to Bugzilla 14399).
        * File join has been disabled in this release, refer to Bugzilla 16929.
  
+Severity   : normal
+Frequency  : rare
+Bugzilla   : 16081
+Description: don't skip ost target if they assigned to file
+Details    : Drop slow OSCs if we can, but not for requested start idx.
+             This means "if OSC is slow and it is not the requested
+             start OST, then it can be skipped, otherwise skip it only
+             if it is inactive/recovering/out-of-space.
 
 Severity   : normal
 Bugzilla   : 16080
diff --git a/lustre/lov/lov_qos.c b/lustre/lov/lov_qos.c
index 08aa2383d2..5ad5848a24 100644
--- a/lustre/lov/lov_qos.c
+++ b/lustre/lov/lov_qos.c
@@ -693,9 +693,13 @@ repeat_find:
                 if (OBD_FAIL_CHECK(OBD_FAIL_MDS_OSC_PRECREATE) && ost_idx == 0)
                         continue;
 
-                /* Drop slow OSCs if we can, but not for requested start idx */
+                /* Drop slow OSCs if we can, but not for requested start idx.
+                 *
+                 * This means "if OSC is slow and it is not the requested
+                 * start OST, then it can be skipped, otherwise skip it only
+                 * if it is inactive/recovering/out-of-space." */
                 if ((obd_precreate(lov->lov_tgts[ost_idx]->ltd_exp) > speed) &&
-                    (i != 0 || speed < 2))
+                    (i != 0 || speed >= 2))
                         continue;
 
                 *idx_pos = ost_idx;
-- 
GitLab