aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndriy Gapon <avg@FreeBSD.org>2019-11-06 09:05:39 +0000
committerAndriy Gapon <avg@FreeBSD.org>2019-11-06 09:05:39 +0000
commitf4eba6fe5e46352368dd64b7df8ed55278b1175d (patch)
treebbe9ac0ca39e5f8c0ab71cfd018699b6a5470987
parent9ce2c74957bc5fb61c8b8e9fc9ca5fcf6a25b844 (diff)
downloadsrc-f4eba6fe5e46352368dd64b7df8ed55278b1175d.tar.gz
src-f4eba6fe5e46352368dd64b7df8ed55278b1175d.zip
11541 allocation_classes feature must be enabled to add log device
illumos/illumos-gate@c1064fd7ce62fe763a4475e9988ffea3b22137de https://github.com/illumos/illumos-gate/commit/c1064fd7ce62fe763a4475e9988ffea3b22137de https://www.illumos.org/issues/11541 After the allocation_classes feature was integrated, one can no longer add a log device to a pool unless that feature is enabled. There is an explicit check for this, but it is unnecessary in the case of log devices, so we should handle this better instead of forcing the feature to be enabled. Author: Jerry Jelinek <jerry.jelinek@joyent.com>
Notes
Notes: svn path=/vendor-sys/illumos/dist/; revision=354385
-rw-r--r--uts/common/fs/zfs/vdev.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/uts/common/fs/zfs/vdev.c b/uts/common/fs/zfs/vdev.c
index 11767fdcad59..3935f39942e0 100644
--- a/uts/common/fs/zfs/vdev.c
+++ b/uts/common/fs/zfs/vdev.c
@@ -25,7 +25,7 @@
* Copyright 2017 Nexenta Systems, Inc.
* Copyright (c) 2014 Integros [integros.com]
* Copyright 2016 Toomas Soome <tsoome@me.com>
- * Copyright 2017 Joyent, Inc.
+ * Copyright 2019 Joyent, Inc.
* Copyright (c) 2017, Intel Corporation.
*/
@@ -633,7 +633,8 @@ vdev_alloc(spa_t *spa, vdev_t **vdp, nvlist_t *nv, vdev_t *parent, uint_t id,
alloc_bias = vdev_derive_alloc_bias(bias);
/* spa_vdev_add() expects feature to be enabled */
- if (spa->spa_load_state != SPA_LOAD_CREATE &&
+ if (alloc_bias != VDEV_BIAS_LOG &&
+ spa->spa_load_state != SPA_LOAD_CREATE &&
!spa_feature_is_enabled(spa,
SPA_FEATURE_ALLOCATION_CLASSES)) {
return (SET_ERROR(ENOTSUP));