From 8dca0a9a386a7e435889e7d621e5029a15dad612 Mon Sep 17 00:00:00 2001
From: Richard Yao <ryao@cs.stonybrook.edu>
Date: Sat, 9 Feb 2013 19:25:55 -0500
Subject: Make spa.c assertions catch unsupported pre-feature flag pool
 versions

A couple of assertions in spa.c were designed to prevent the use of
invalid pool versions. They were written under the assumption
that all valid pools are less than SPA_VERSION. Since feature flags
jumped from 28 to 5000, any numbers in the range 28 to 5000
non-inclusive will fail to trigger them.  We switch to the new
SPA_VERSION_IS_SUPPORTED macro to correct this.

Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #1282
---
 module/zfs/spa.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'module')

diff --git a/module/zfs/spa.c b/module/zfs/spa.c
index 5b6465f2e..0babf4752 100644
--- a/module/zfs/spa.c
+++ b/module/zfs/spa.c
@@ -5770,7 +5770,7 @@ spa_sync_version(void *arg1, void *arg2, dmu_tx_t *tx)
 	 */
 	ASSERT(tx->tx_txg != TXG_INITIAL);
 
-	ASSERT(version <= SPA_VERSION);
+	ASSERT(SPA_VERSION_IS_SUPPORTED(version));
 	ASSERT(version >= spa_version(spa));
 
 	spa->spa_uberblock.ub_version = version;
@@ -6294,7 +6294,7 @@ spa_upgrade(spa_t *spa, uint64_t version)
 	 * future version would result in an unopenable pool, this shouldn't be
 	 * possible.
 	 */
-	ASSERT(spa->spa_uberblock.ub_version <= SPA_VERSION);
+	ASSERT(SPA_VERSION_IS_SUPPORTED(spa->spa_uberblock.ub_version));
 	ASSERT(version >= spa->spa_uberblock.ub_version);
 
 	spa->spa_uberblock.ub_version = version;
-- 
cgit v1.2.3