diff options
-rw-r--r-- | cmd/zpool/os/freebsd/zpool_vdev_os.c | 15 | ||||
-rw-r--r-- | cmd/zpool/os/linux/zpool_vdev_os.c | 5 | ||||
-rw-r--r-- | cmd/zpool/zpool_main.c | 22 | ||||
-rw-r--r-- | cmd/zpool/zpool_util.h | 1 |
4 files changed, 33 insertions, 10 deletions
diff --git a/cmd/zpool/os/freebsd/zpool_vdev_os.c b/cmd/zpool/os/freebsd/zpool_vdev_os.c index 7d48f61a0..aa66d29fa 100644 --- a/cmd/zpool/os/freebsd/zpool_vdev_os.c +++ b/cmd/zpool/os/freebsd/zpool_vdev_os.c @@ -101,3 +101,18 @@ check_sector_size_database(char *path, int *sector_size) { return (0); } + +void +after_zpool_upgrade(zpool_handle_t *zhp) +{ + char bootfs[ZPOOL_MAXPROPLEN]; + + if (zpool_get_prop(zhp, ZPOOL_PROP_BOOTFS, bootfs, + sizeof (bootfs), NULL, B_FALSE) == 0 && + strcmp(bootfs, "-") != 0) { + (void) printf(gettext("Pool '%s' has the bootfs " + "property set, you might need to update\nthe boot " + "code. See gptzfsboot(8) and loader.efi(8) for " + "details.\n"), zpool_get_name(zhp)); + } +} diff --git a/cmd/zpool/os/linux/zpool_vdev_os.c b/cmd/zpool/os/linux/zpool_vdev_os.c index 55a9367ec..da87aa79f 100644 --- a/cmd/zpool/os/linux/zpool_vdev_os.c +++ b/cmd/zpool/os/linux/zpool_vdev_os.c @@ -405,3 +405,8 @@ check_device(const char *path, boolean_t force, return (error); } + +void +after_zpool_upgrade(zpool_handle_t *zhp) +{ +} diff --git a/cmd/zpool/zpool_main.c b/cmd/zpool/zpool_main.c index 50ef9e643..02415b157 100644 --- a/cmd/zpool/zpool_main.c +++ b/cmd/zpool/zpool_main.c @@ -8837,7 +8837,7 @@ upgrade_cb(zpool_handle_t *zhp, void *arg) upgrade_cbdata_t *cbp = arg; nvlist_t *config; uint64_t version; - boolean_t printnl = B_FALSE; + boolean_t modified_pool = B_FALSE; int ret; config = zpool_get_config(zhp, NULL); @@ -8851,7 +8851,7 @@ upgrade_cb(zpool_handle_t *zhp, void *arg) ret = upgrade_version(zhp, cbp->cb_version); if (ret != 0) return (ret); - printnl = B_TRUE; + modified_pool = B_TRUE; /* * If they did "zpool upgrade -a", then we could @@ -8871,12 +8871,13 @@ upgrade_cb(zpool_handle_t *zhp, void *arg) if (count > 0) { cbp->cb_first = B_FALSE; - printnl = B_TRUE; + modified_pool = B_TRUE; } } - if (printnl) { - (void) printf(gettext("\n")); + if (modified_pool) { + (void) printf("\n"); + (void) after_zpool_upgrade(zhp); } return (0); @@ -8989,7 +8990,7 @@ upgrade_list_disabled_cb(zpool_handle_t *zhp, void *arg) static int upgrade_one(zpool_handle_t *zhp, void *data) { - boolean_t printnl = B_FALSE; + boolean_t modified_pool = B_FALSE; upgrade_cbdata_t *cbp = data; uint64_t cur_version; int ret; @@ -9017,7 +9018,7 @@ upgrade_one(zpool_handle_t *zhp, void *data) } if (cur_version != cbp->cb_version) { - printnl = B_TRUE; + modified_pool = B_TRUE; ret = upgrade_version(zhp, cbp->cb_version); if (ret != 0) return (ret); @@ -9030,7 +9031,7 @@ upgrade_one(zpool_handle_t *zhp, void *data) return (ret); if (count != 0) { - printnl = B_TRUE; + modified_pool = B_TRUE; } else if (cur_version == SPA_VERSION) { (void) printf(gettext("Pool '%s' already has all " "supported and requested features enabled.\n"), @@ -9038,8 +9039,9 @@ upgrade_one(zpool_handle_t *zhp, void *data) } } - if (printnl) { - (void) printf(gettext("\n")); + if (modified_pool) { + (void) printf("\n"); + (void) after_zpool_upgrade(zhp); } return (0); diff --git a/cmd/zpool/zpool_util.h b/cmd/zpool/zpool_util.h index 5557859ed..71db4dc35 100644 --- a/cmd/zpool/zpool_util.h +++ b/cmd/zpool/zpool_util.h @@ -130,6 +130,7 @@ int check_device(const char *path, boolean_t force, boolean_t check_sector_size_database(char *path, int *sector_size); void vdev_error(const char *fmt, ...); int check_file(const char *file, boolean_t force, boolean_t isspare); +void after_zpool_upgrade(zpool_handle_t *zhp); #ifdef __cplusplus } |