summaryrefslogtreecommitdiff
path: root/usr/src/cmd/syseventd
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/cmd/syseventd')
-rw-r--r--usr/src/cmd/syseventd/modules/zfs_mod/zfs_mod.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/usr/src/cmd/syseventd/modules/zfs_mod/zfs_mod.c b/usr/src/cmd/syseventd/modules/zfs_mod/zfs_mod.c
index 983d1a1832..3f0eea10e3 100644
--- a/usr/src/cmd/syseventd/modules/zfs_mod/zfs_mod.c
+++ b/usr/src/cmd/syseventd/modules/zfs_mod/zfs_mod.c
@@ -20,6 +20,7 @@
*/
/*
* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
*/
/*
@@ -552,9 +553,17 @@ zfsdle_vdev_online(zpool_handle_t *zhp, void *data)
&wholedisk) == 0);
(void) strlcpy(fullpath, path, sizeof (fullpath));
- if (wholedisk)
+ if (wholedisk) {
fullpath[strlen(fullpath) - 2] = '\0';
+ /*
+ * We need to reopen the pool associated with this
+ * device so that the kernel can update the size
+ * of the expanded device.
+ */
+ (void) zpool_reopen(zhp);
+ }
+
if (zpool_get_prop_int(zhp, ZPOOL_PROP_AUTOEXPAND, NULL)) {
syseventd_print(9, "zfsdle_vdev_online: setting device"
" device %s to ONLINE state in pool %s.\n",