diff options
author | ae <ae@FreeBSD.org> | 2017-03-08 07:59:45 +0000 |
---|---|---|
committer | ae <ae@FreeBSD.org> | 2017-03-08 07:59:45 +0000 |
commit | f5e89bc56ac58006ef4f13939001c3d80dd71341 (patch) | |
tree | a626cbf4d18a954d207f51bbd63120b46ebb2206 | |
parent | bd4ab57012e00eb9aabaed8931b919a2be8316f6 (diff) | |
download | FreeBSD-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.
-rw-r--r-- | sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c | 11 |
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 */ |