OpenZFS on Linux and FreeBSD
Go to file
Chunwei Chen 23227313a2 Fix zdb -c traverse stop on damaged objset root
If a corruption happens to be on a root block of an objset, zdb -c will
not correctly report the error, and it will not traverse the datasets
that come after. This is because traverse_visitbp, which does the
callback and reset error for TRAVERSE_HARD, is skipped when traversing
zil is failed in traverse_impl.

Here's example of what 'zdb -eLcc' command looks like on a pool with
damaged objset root:

== before patch:

Traversing all blocks to verify checksums ...

Error counts:

	errno  count
block traversal size 379392 != alloc 33987072 (unreachable 33607680)

	bp count:             172
	ganged count:           0
	bp logical:       1678336      avg:   9757
	bp physical:       130560      avg:    759     compression:  12.85
	bp allocated:      379392      avg:   2205     compression:   4.42
	bp deduped:             0    ref>1:      0   deduplication:   1.00
	SPA allocated:   33987072     used:  0.80%

	additional, non-pointer bps of type 0:         71
	Dittoed blocks on same vdev: 101

== after patch:

Traversing all blocks to verify checksums ...

zdb_blkptr_cb: Got error 52 reading <54, 0, -1, 0>  -- skipping

Error counts:

	errno  count
	   52  1
block traversal size 33963520 != alloc 33987072 (unreachable 23552)

	bp count:             447
	ganged count:           0
	bp logical:      36093440      avg:  80745
	bp physical:     33699840      avg:  75391     compression:   1.07
	bp allocated:    33963520      avg:  75981     compression:   1.06
	bp deduped:             0    ref>1:      0   deduplication:   1.00
	SPA allocated:   33987072     used:  0.80%

	additional, non-pointer bps of type 0:         76
	Dittoed blocks on same vdev: 115

==

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: loli10K <ezomori.nozomu@gmail.com>
Signed-off-by: Chunwei Chen <david.chen@nutanix.com>
Closes #7099
2018-03-14 16:10:36 -07:00
.github Update codecov.yml 2018-03-14 16:10:36 -07:00
cmd ZTS: Fix create-o_ashift test case 2018-03-14 16:10:36 -07:00
config Linux 4.16 compat: inode_set_iversion() 2018-03-14 16:10:36 -07:00
contrib Add /usr/bin/env to COPY_EXEC_LIST initramfs hook 2017-12-04 17:22:36 -08:00
etc Use /sbin/openrc-run for openrc init scripts 2018-01-30 10:27:30 -06:00
include Linux 4.11 compat: avoid refcount_t name conflict 2018-03-14 16:10:36 -07:00
lib Fix 'zfs receive -o' when used with '-e|-d' 2018-01-30 10:27:32 -06:00
man Remove deprecated zfs_arc_p_aggressive_disable 2018-03-14 16:10:36 -07:00
module Fix zdb -c traverse stop on damaged objset root 2018-03-14 16:10:36 -07:00
rpm Fix systemd_ RPM macros usage on Debian-based distributions 2018-03-14 16:10:36 -07:00
scripts Extend zloop.sh for automated testing 2018-01-30 10:27:31 -06:00
tests ZTS: Fix create-o_ashift test case 2018-03-14 16:10:36 -07:00
udev Fix spelling 2017-01-03 11:31:18 -06:00
.gitignore Add configure option to enable gcov analysis 2018-03-14 16:10:36 -07:00
.gitmodules
AUTHORS Add a missing > to AUTHORS 2014-09-02 14:18:53 -07:00
COPYRIGHT Update ZED copyright boilerplate 2015-05-11 15:07:00 -07:00
DISCLAIMER
META Tag zfs-0.7.6 2018-02-01 10:02:58 -08:00
Makefile.am Add support for "--enable-code-coverage" option 2018-03-14 16:10:36 -07:00
OPENSOLARIS.LICENSE
README.markdown Update codecov.yml 2018-03-14 16:10:36 -07:00
TEST Retire filebench testing 2017-06-01 06:24:28 -07:00
autogen.sh
configure.ac Add support for "--enable-code-coverage" option 2018-03-14 16:10:36 -07:00
copy-builtin Allow c99 when building ZFS in the kernel tree 2017-03-27 12:31:15 -07:00
zfs-script-config.sh.in zpool iostat/status -c improvements 2017-06-05 10:52:15 -07:00
zfs.release.in

README.markdown

img

ZFS on Linux is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS community.

codecov

Official Resources

Installation

Full documentation for installing ZoL on your favorite Linux distribution can be found at our site.

Contribute & Develop

We have a separate document with contribution guidelines.