--- a/usr/src/uts/common/fs/zfs/spa.c Thu Dec 22 16:02:27 2005 -0800
+++ b/usr/src/uts/common/fs/zfs/spa.c Thu Dec 22 16:47:43 2005 -0800
@@ -910,7 +910,11 @@
if ((error = vdev_create(newrootvd, txg)) != 0)
return (spa_vdev_exit(spa, newrootvd, txg, error));
- if (newvd->vdev_psize < oldvd->vdev_psize)
+ /*
+ * Compare the new device size with the replaceable/attachable
+ * device size.
+ */
+ if (newvd->vdev_psize < vdev_get_rsize(oldvd))
return (spa_vdev_exit(spa, newrootvd, txg, EOVERFLOW));
if (newvd->vdev_ashift != oldvd->vdev_ashift && oldvd->vdev_ashift != 0)