diff options
author | Xin LI <delphij@FreeBSD.org> | 2014-12-08 06:04:42 +0000 |
---|---|---|
committer | Xin LI <delphij@FreeBSD.org> | 2014-12-08 06:04:42 +0000 |
commit | c2161091ad3723e6b6bf7a6bd982bd8a5ab5dda8 (patch) | |
tree | 6ce5967ded79329e9e434dc5a52ba4ea190af5a3 /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h | |
parent | d6ad6a865a9b9e0b33ed2af9f1774eb20666c91c (diff) | |
parent | 6e0d888ba8300d9c22454e580d2037feee85d884 (diff) | |
download | src-c2161091ad3723e6b6bf7a6bd982bd8a5ab5dda8.tar.gz src-c2161091ad3723e6b6bf7a6bd982bd8a5ab5dda8.zip |
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
Notes
Notes:
svn path=/head/; revision=275594
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h')
-rw-r--r-- | sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h index deefb196fdef..74031f15ebe9 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/metaslab.h @@ -42,8 +42,8 @@ typedef struct metaslab_ops { extern metaslab_ops_t *zfs_metaslab_ops; -metaslab_t *metaslab_init(metaslab_group_t *, uint64_t, - uint64_t, uint64_t); +int metaslab_init(metaslab_group_t *, uint64_t, uint64_t, uint64_t, + metaslab_t **); void metaslab_fini(metaslab_t *); void metaslab_load_wait(metaslab_t *); |