svn commit: r286224 - vendor-sys/illumos/dist/uts/common/fs/zfs vendor-sys/illumos/dist/uts/common/fs/zfs/sys vendor/illumos/dist/cmd/zdb
Andriy Gapon
avg at FreeBSD.org
Mon Aug 3 10:10:52 UTC 2015
Author: avg
Date: Mon Aug 3 10:10:49 2015
New Revision: 286224
URL: https://svnweb.freebsd.org/changeset/base/286224
Log:
5695 dmu_sync'ed holes do not retain birth time
illumos/illumos-gate at 70163ac57e58ace1c5c94dfbe85dca5a974eff36
https://www.illumos.org/issues/5695
In dmu_sync_ready(), a hole block pointer will have it's logical size
explicitly set as it's necessary for replay purposes. To "undo" this,
dmu_sync_done() will zero out any hole that it finds. This becomes a
problem when using the "hole_birth" feature, as this will also wipe out
any birth time that might have happened to be set on the hole.
...
As a fix, the logic to zero out a hole is only applied to old style
holes with a birth time of zero. Holes created with the "hole_birth"
feature enabled will have a non-zero birth time, and will be skipped
(thus preserving the ltime, type, and level information as well).
In addition, zdb was updated to also print the ltime, type, and level
information for these new style holes. Previously, only the logical
birth time would be printed.
Author: Prakash Surya <prakash.surya at delphix.com>
Reviewed by: Matthew Ahrens <mahrens at delphix.com>
Reviewed by: George Wilson <george at delphix.com>
Reviewed by: Christopher Siden <christopher.siden at delphix.com>
Reviewed by: Bayard Bell <buffer.g.overflow at gmail.com>
Approved by: Dan McDonald <danmcd at omniti.com>
Modified:
vendor/illumos/dist/cmd/zdb/zdb.c
Changes in other areas also in this revision:
Modified:
vendor-sys/illumos/dist/uts/common/fs/zfs/dmu.c
vendor-sys/illumos/dist/uts/common/fs/zfs/sys/spa.h
Modified: vendor/illumos/dist/cmd/zdb/zdb.c
==============================================================================
--- vendor/illumos/dist/cmd/zdb/zdb.c Mon Aug 3 09:34:09 2015 (r286223)
+++ vendor/illumos/dist/cmd/zdb/zdb.c Mon Aug 3 10:10:49 2015 (r286224)
@@ -1103,7 +1103,9 @@ snprintf_blkptr_compact(char *blkbuf, si
if (BP_IS_HOLE(bp)) {
(void) snprintf(blkbuf + strlen(blkbuf),
- buflen - strlen(blkbuf), "B=%llu",
+ buflen - strlen(blkbuf),
+ "%llxL B=%llu",
+ (u_longlong_t)BP_GET_LSIZE(bp),
(u_longlong_t)bp->blk_birth);
} else {
(void) snprintf(blkbuf + strlen(blkbuf),
More information about the svn-src-all
mailing list