]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit - usr.bin/colcrt/colcrt.1
MFV 316905
authorJosh Paetzel <jpaetzel@FreeBSD.org>
Fri, 28 Apr 2017 02:11:29 +0000 (02:11 +0000)
committerJosh Paetzel <jpaetzel@FreeBSD.org>
Fri, 28 Apr 2017 02:11:29 +0000 (02:11 +0000)
commit285d85ab044c3403b24b2fd7160bf5e103ab02f9
treebb31c2d73bdc76d130fd29ec93e50db4a03e597e
parent358f157522e68c63507f9ef3843f36f3bfb42129
parent9dfe195883a82b3d41b6fedca33b37a942c5133f
MFV 316905

7740 fix for 6513 only works in hole punching case, not truncation

illumos/illumos-gate@7de35a3ed0c2e6d4256bd2fb05b48b3798aaf553
https://github.com/illumos/illumos-gate/commit/7de35a3ed0c2e6d4256bd2fb05b48b3798aaf553

https://www.illumos.org/issues/7740
  The problem is that dbuf_findbp will return ENOENT if the block it's
  trying to find is beyond the end of the file. If that happens, we assume
  there is no birth time, and so we lose that information when we write
  out new blkptrs. We should teach dbuf_findbp to look for things that are
  beyond the current end, but not beyond the absolute end of the file.
  To verify, create a large file, truncate it to a short length, and then
  write beyond the end. Check with zdb to make sure that there are no
  holes with birth time zero (will appear as gaps).

Reviewed by: Steve Gonczi <steve.gonczi@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Approved by: Dan McDonald <danmcd@omniti.com>
Author: Paul Dagnelie <pcd@delphix.com>
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h