Skip to content

Commit 1f10b17

Browse files
Luke Beirnecalccrypto
authored andcommitted
Z.I.A. Tests and Provider Disabling
Fixed Z.I.A. testing logic so that all available tests run as expected. At the time of this commit, all tests pass. Additionally, support for unassigning zia_provider was added. Usage: zpool set zia_provider=<off/NULL> <pool> This change was required for one aspect of Z.I.A. testing. Signed-off-by: Luke Beirne <[email protected]>
1 parent e08c8a0 commit 1f10b17

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

module/zfs/spa.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9812,6 +9812,13 @@ spa_sync_props(void *arg, dmu_tx_t *tx)
98129812
break;
98139813
case ZPOOL_PROP_ZIA_PROVIDER:
98149814
strval = fnvpair_value_string(elem);
9815+
if (strncmp(strval, "NULL", 5) == 0 ||
9816+
strncmp(strval, "off", 4) == 0) {
9817+
zia_put_provider(&zia_props->provider,
9818+
spa->spa_root_vdev);
9819+
break;
9820+
}
9821+
98159822
if (zia_props->provider != NULL)
98169823
zia_put_provider(&zia_props->provider,
98179824
spa->spa_root_vdev);

module/zfs/zia.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -996,7 +996,7 @@ zia_compress(zia_props_t *props, enum zio_compress c,
996996
uint8_t level, boolean_t *local_offload)
997997
{
998998
#ifdef ZIA
999-
if (!dpusm) {
999+
if (!dpusm || !props->provider) {
10001000
return (ZIA_FALLBACK);
10011001
}
10021002

@@ -1252,6 +1252,9 @@ zia_raidz_alloc(zio_t *zio, raidz_row_t *rr, boolean_t rec,
12521252
}
12531253

12541254
zia_props_t *props = zia_get_props(zio->io_spa);
1255+
if (!props->provider) {
1256+
return (ZIA_FALLBACK);
1257+
}
12551258

12561259
/* get column sizes */
12571260
const size_t column_sizes_size = sizeof (size_t) * rr->rr_cols;

tests/zfs-tests/tests/functional/zia/zia.kshlib

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,10 @@ function dpusm_loaded
4747
then
4848
lsmod | grep dpusm > /dev/null
4949
ret="$?"
50-
(( "${ret}" != "0" )) && log_unsupported "dpusm not loaded"
50+
if [[ "${ret}" != "0" ]]
51+
then
52+
log_unsupported "dpusm not loaded"
53+
fi
5154
fi
5255
}
5356

@@ -63,15 +66,15 @@ function load_provider
6366
if [[ "$(zia_available)" == "yes" ]]
6467
then
6568
log_must insmod "${SBIN_DIR}/module/${PROVIDER}.ko"
66-
log_must zpool set zia_provider="${PROVIDER}" "${TESTPOOL}"
69+
log_must zpool set zia_provider="${PROVIDER_MODULE}" "${TESTPOOL}"
6770
fi
6871
}
6972

7073
function unload_provider
7174
{
7275
if [[ "$(zia_available)" == "yes" ]]
7376
then
74-
log_must zpool set zia_provider="" "${TESTPOOL}"
77+
log_must zpool set zia_provider="NULL" "${TESTPOOL}"
7578
log_must rmmod "${PROVIDER_MODULE}"
7679
fi
7780
}

0 commit comments

Comments
 (0)