summaryrefslogtreecommitdiffstats
path: root/sys/cddl
diff options
context:
space:
mode:
authorae <ae@FreeBSD.org>2017-03-08 07:59:45 +0000
committerae <ae@FreeBSD.org>2017-03-08 07:59:45 +0000
commitf5e89bc56ac58006ef4f13939001c3d80dd71341 (patch)
treea626cbf4d18a954d207f51bbd63120b46ebb2206 /sys/cddl
parentbd4ab57012e00eb9aabaed8931b919a2be8316f6 (diff)
downloadFreeBSD-src-f5e89bc56ac58006ef4f13939001c3d80dd71341.zip
FreeBSD-src-f5e89bc56ac58006ef4f13939001c3d80dd71341.tar.gz
MFC r314497:
Do not invoke the resize event when previous provider's size was zero. This is similar to r303637 fix for geom_disk.
Diffstat (limited to 'sys/cddl')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
index 23284a7..07de1d0 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
@@ -267,7 +267,16 @@ zvol_size_changed(zvol_state_t *zv, uint64_t volsize)
if (pp == NULL)
return;
g_topology_lock();
- g_resize_provider(pp, zv->zv_volsize);
+
+ /*
+ * Do not invoke resize event when initial size was zero.
+ * ZVOL initializes the size on first open, this is not
+ * real resizing.
+ */
+ if (pp->mediasize == 0)
+ pp->mediasize = zv->zv_volsize;
+ else
+ g_resize_provider(pp, zv->zv_volsize);
g_topology_unlock();
}
#endif /* illumos */
OpenPOWER on IntegriCloud