MFV r275540:

When importing a pool, don't assume that the passed pool configuration
at vdev_load is always vaild.  It's possible that a stale configuration
that comes with extra vdevs, where metaslab_init() would fail because
of lower layer returns error.

Change the code to make metaslab_init() handle and return errors from
lower layer and pass it back to upper layer and handle it there.

Illumos issue:
    5213 panic in metaslab_init due to space_map_open returning ENXIO

MFC after:	2 weeks


git-svn-id: svn+ssh://svn.freebsd.org/base/head@275594 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Use calloc() instead of malloc() + bzero().  This also gets rid of a warning
because bzero is defined by strings.h which is not included in thread_pool.c.

MFC after:	2 weeks


git-svn-id: svn+ssh://svn.freebsd.org/base/head@275595 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f