]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/commit
MFC r245264:
authordelphij <delphij@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sat, 9 Feb 2013 01:41:21 +0000 (01:41 +0000)
committerdelphij <delphij@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sat, 9 Feb 2013 01:41:21 +0000 (01:41 +0000)
commitdf67f943df85a7a49f65e7d8f6903878cc5c2a5c
tree8ecf7dae2c2b7fb4f4989fd4fd497cb46acf5632
parentd883e1787cfc9689ad4783a59b539173e32d09c4
MFC r245264:

The current ZFS code expects ddt_zap_count to always succeed by asserting
the underlying zap_count() to return no errors.  However, it is possible
that the pool reaches to such a state where zap_count would return error,
leading to panics when a pool is imported.

This commit changes the ddt_zap_count to return error returned from
zap_count and handle the error appropriately.  With this change, it's now
possible to let zpool rollback damaged transaction groups and import the
pool.

Obtained from: ZFS on Linux github (e8fd45a0f975c6b8ae8cd644714fc21f14fac2bf)

git-svn-id: svn://svn.freebsd.org/base/stable/8@246578 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
cddl/contrib/opensolaris/cmd/zdb/zdb.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt_zap.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/ddt.h