diff options
Diffstat (limited to 'usr/src/cmd/syseventd')
-rw-r--r-- | usr/src/cmd/syseventd/modules/zfs_mod/zfs_mod.c | 11 |
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", |