Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

7176 Yet another hole birth issue #4981

Closed
wants to merge 1 commit into from

Conversation

bprotopopov
Copy link
Contributor

This is another bug in the long line of hole-birth related issues. In
this particular case, it was discovered that a previous hole-birth fix
(illumos bug 6513) did not cover as many cases as we thought it did.
While the issue worked in the case of hole-punching (writing zeroes to a
large part of a file), it did not deal with truncation, and then writing
beyond the new end of the file.

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.

Reviewed by: Matthew Ahrens [email protected]
Reviewed by: George Wilson [email protected]

Ported by: Boris Protopopov [email protected]

@bprotopopov
Copy link
Contributor Author

quick port of the recent commit by @pcd1193182

This is another bug in the long line of hole-birth related issues. In
this particular case, it was discovered that a previous hole-birth fix
(illumos bug 6513) did not cover as many cases as we thought it did.
While the issue worked in the case of hole-punching (writing zeroes to a
large part of a file), it did not deal with truncation, and then writing
beyond the new end of the file.

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.

Reviewed by: Matthew Ahrens <[email protected]>
Reviewed by: George Wilson <[email protected]>

Ported by: Boris Protopopov <[email protected]>
@bprotopopov
Copy link
Contributor Author

Hm. I guess my compiler is newer. Let's re-spin.

@kernelOfTruth
Copy link
Contributor

kernelOfTruth commented Aug 17, 2016

dupe :)

#4950 Illumos 7176 Yet another hole birth issue

@bprotopopov
Copy link
Contributor Author

Closing as duplicate of
pull request #4950 Illumos 7176 Yet another hole birth issue

@kernelOfTruth
Copy link
Contributor

rebased it on august 17th, thank you !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants