Output boot code warning when zpool upgrade -a is used to add features.

In the case where new features where enabled by a zpool upgrade -a the
boot code warning wasn't output.

Submitted by:	Jan Kokemueller
MFC after:	3 days
This commit is contained in:
smh 2014-09-21 19:31:19 +00:00
parent 17dda45b30
commit 601ace4f2b

View File

@ -4524,7 +4524,8 @@ is_root_pool(zpool_handle_t *zhp)
} }
static void static void
root_pool_upgrade_check(zpool_handle_t *zhp, char *poolname, int size) { root_pool_upgrade_check(zpool_handle_t *zhp, char *poolname, int size)
{
if (poolname[0] == '\0' && is_root_pool(zhp)) if (poolname[0] == '\0' && is_root_pool(zhp))
(void) strlcpy(poolname, zpool_get_name(zhp), size); (void) strlcpy(poolname, zpool_get_name(zhp), size);
@ -4623,7 +4624,7 @@ upgrade_cb(zpool_handle_t *zhp, void *arg)
#ifdef __FreeBSD__ #ifdef __FreeBSD__
root_pool_upgrade_check(zhp, cbp->cb_poolname, root_pool_upgrade_check(zhp, cbp->cb_poolname,
sizeof(cbp->cb_poolname)); sizeof(cbp->cb_poolname));
#endif /* ___FreeBSD__ */ #endif /* __FreeBSD__ */
printnl = B_TRUE; printnl = B_TRUE;
#ifdef illumos #ifdef illumos
@ -4647,6 +4648,10 @@ upgrade_cb(zpool_handle_t *zhp, void *arg)
if (count > 0) { if (count > 0) {
cbp->cb_first = B_FALSE; cbp->cb_first = B_FALSE;
printnl = B_TRUE; printnl = B_TRUE;
#ifdef __FreeBSD__
root_pool_upgrade_check(zhp, cbp->cb_poolname,
sizeof(cbp->cb_poolname));
#endif /* __FreeBSD__ */
/* /*
* If they did "zpool upgrade -a", then we could * If they did "zpool upgrade -a", then we could
* be doing ioctls to different pools. We need * be doing ioctls to different pools. We need
@ -4788,7 +4793,7 @@ upgrade_one(zpool_handle_t *zhp, void *data)
#ifdef __FreeBSD__ #ifdef __FreeBSD__
root_pool_upgrade_check(zhp, cbp->cb_poolname, root_pool_upgrade_check(zhp, cbp->cb_poolname,
sizeof(cbp->cb_poolname)); sizeof(cbp->cb_poolname));
#endif /* ___FreeBSD__ */ #endif /* __FreeBSD__ */
} }
if (cbp->cb_version >= SPA_VERSION_FEATURES) { if (cbp->cb_version >= SPA_VERSION_FEATURES) {