]> granicus.if.org Git - zfs/blobdiff - module/zfs/vdev.c
OpenZFS 9591 - ms_shift can be incorrectly changed
[zfs] / module / zfs / vdev.c
index 7bb27f0ec7e495417b4bbed849958a5b9b18cd55..37bb5a0c5c5b235d2024639b14dad6944ccf744d 100644 (file)
@@ -21,7 +21,7 @@
 
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2011, 2015 by Delphix. All rights reserved.
+ * Copyright (c) 2011, 2018 by Delphix. All rights reserved.
  * Copyright 2017 Nexenta Systems, Inc.
  * Copyright (c) 2014 Integros [integros.com]
  * Copyright 2016 Toomas Soome <tsoome@me.com>
@@ -3493,7 +3493,6 @@ vdev_get_stats_ex(vdev_t *vd, vdev_stat_t *vs, vdev_stat_ex_t *vsx)
                            vd->vdev_max_asize - vd->vdev_asize,
                            1ULL << tvd->vdev_ms_shift);
                }
-               vs->vs_esize = vd->vdev_max_asize - vd->vdev_asize;
                if (vd->vdev_aux == NULL && vd == vd->vdev_top &&
                    vdev_is_concrete(vd)) {
                        vs->vs_fragmentation = vd->vdev_mg->mg_fragmentation;
@@ -4173,11 +4172,11 @@ vdev_expand(vdev_t *vd, uint64_t txg)
 {
        ASSERT(vd->vdev_top == vd);
        ASSERT(spa_config_held(vd->vdev_spa, SCL_ALL, RW_WRITER) == SCL_ALL);
+       ASSERT(vdev_is_concrete(vd));
 
        vdev_set_deflate_ratio(vd);
 
-       if ((vd->vdev_asize >> vd->vdev_ms_shift) > vd->vdev_ms_count &&
-           vdev_is_concrete(vd)) {
+       if ((vd->vdev_asize >> vd->vdev_ms_shift) > vd->vdev_ms_count) {
                VERIFY(vdev_metaslab_init(vd, txg) == 0);
                vdev_config_dirty(vd);
        }
@@ -4237,7 +4236,7 @@ vdev_deadman(vdev_t *vd, char *tag)
        }
 }
 
-#if defined(_KERNEL) && defined(HAVE_SPL)
+#if defined(_KERNEL)
 EXPORT_SYMBOL(vdev_fault);
 EXPORT_SYMBOL(vdev_degrade);
 EXPORT_SYMBOL(vdev_online);