Whamcloud - gitweb
b=18606
authornathan <nathan>
Thu, 26 Feb 2009 19:16:08 +0000 (19:16 +0000)
committernathan <nathan>
Thu, 26 Feb 2009 19:16:08 +0000 (19:16 +0000)
i=adilger
i=johann
use pool of "all" if specified pool is empty

lustre/lov/lov_pack.c
lustre/tests/sanity.sh

index 93474f2..9d15b1a 100644 (file)
@@ -484,23 +484,22 @@ int lov_setstripe(struct obd_export *exp, struct lov_stripe_md **lsmp,
                 struct pool_desc *pool;
 
                 pool = lov_find_pool(lov, lumv3.lmm_pool_name);
-                if (pool == NULL)
-                        RETURN(-EINVAL);
-
-                if (lumv1->lmm_stripe_offset !=
-                    (typeof(lumv1->lmm_stripe_offset))(-1)) {
-                        rc = lov_check_index_in_pool(lumv1->lmm_stripe_offset,
-                                                     pool);
-                        if (rc < 0) {
-                                lov_pool_putref(pool);
-                                RETURN(-EINVAL);
+                if (pool != NULL) {
+                        if (lumv1->lmm_stripe_offset !=
+                            (typeof(lumv1->lmm_stripe_offset))(-1)) {
+                                rc = lov_check_index_in_pool(
+                                        lumv1->lmm_stripe_offset, pool);
+                                if (rc < 0) {
+                                        lov_pool_putref(pool);
+                                        RETURN(-EINVAL);
+                                }
                         }
-                }
 
-                if (stripe_count > pool_tgt_count(pool))
-                        stripe_count = pool_tgt_count(pool);
+                        if (stripe_count > pool_tgt_count(pool))
+                                stripe_count = pool_tgt_count(pool);
 
-                lov_pool_putref(pool);
+                        lov_pool_putref(pool);
+                }
         }
 
         rc = lov_alloc_memmd(lsmp, stripe_count, lumv1->lmm_pattern, lmm_magic);
index 2b7f1f0..fadbbf8 100644 (file)
@@ -5867,6 +5867,9 @@ test_200h() {
         done
         wait_update $HOSTNAME "lctl get_param -n lov.$FSNAME-*.pools.$POOL" ""\
             || error "Pool $FSNAME.$POOL cannot be drained"
+        # striping on an empty pool should fall back to "pool of everything"
+        $SETSTRIPE -p $POOL ${POOL_FILE}/$tfile || \
+           error "failed to create file with empty pool"
 }
 run_test 200h "Remove all targets from a pool =========================="