svn commit: r253441 - in head: cddl/contrib/opensolaris/cmd/zpool sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Xin LI
delphij at FreeBSD.org
Thu Jul 18 00:22:43 UTC 2013
Author: delphij
Date: Thu Jul 18 00:22:42 2013
New Revision: 253441
URL: http://svnweb.freebsd.org/changeset/base/253441
Log:
Manually merge part of vendor import r238583 from Illumos.
Illumos changeset: 13680:2bd022a765e2
Illumos ZFS issue:
2671 zpool import should not fail if vdev ashift has increased
MFC after: 3 days
Modified:
head/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
Modified: head/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
==============================================================================
--- head/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Wed Jul 17 23:37:33 2013 (r253440)
+++ head/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Thu Jul 18 00:22:42 2013 (r253441)
@@ -3997,7 +3997,7 @@ print_dedup_stats(nvlist_t *config)
/*
* If the pool was faulted then we may not have been able to
- * obtain the config. Otherwise, if have anything in the dedup
+ * obtain the config. Otherwise, if we have anything in the dedup
* table continue processing the stats.
*/
if (nvlist_lookup_uint64_array(config, ZPOOL_CONFIG_DDT_OBJ_STATS,
Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c Wed Jul 17 23:37:33 2013 (r253440)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c Thu Jul 18 00:22:42 2013 (r253441)
@@ -1258,12 +1258,16 @@ vdev_open(vdev_t *vd)
vd->vdev_ashift = MAX(ashift, vd->vdev_ashift);
} else {
/*
- * Make sure the alignment requirement hasn't increased.
+ * Detect if the alignment requirement has increased.
+ * We don't want to make the pool unavailable, just
+ * issue a warning instead.
*/
- if (ashift > vd->vdev_top->vdev_ashift) {
- vdev_set_state(vd, B_TRUE, VDEV_STATE_CANT_OPEN,
- VDEV_AUX_BAD_LABEL);
- return (EINVAL);
+ if (ashift > vd->vdev_top->vdev_ashift &&
+ vd->vdev_ops->vdev_op_leaf) {
+ cmn_err(CE_WARN,
+ "Disk, '%s', has a block alignment that is "
+ "larger than the pool's alignment\n",
+ vd->vdev_path);
}
vd->vdev_max_asize = max_asize;
}
More information about the svn-src-all
mailing list