Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 03 Jun 2015 11:21:45 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-fs@FreeBSD.org
Subject:   [Bug 199804] ZFS: i/o error - all block copies unavailable
Message-ID:  <bug-199804-3630-xyJBrKjE1O@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-199804-3630@https.bugs.freebsd.org/bugzilla/>
References:  <bug-199804-3630@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=199804

--- Comment #3 from Andriy Gapon <avg@FreeBSD.org> ---
(In reply to Toomas Soome from comment #2)

I think this fix is not completely correct.
Now you use the data block size as the hole size. I think that the hole size
should be determined based on the level of the hole. Essentially, if the hole
is at the zero level, then it covers dn_datablkszsec * 512 bytes of data (one
data block).  If the hole is one level above, then it covers as many data
blocks as a number of block pointers that fit into one indirect block. And so
on.
Please note that (nlevels - i - 1) is the level number in the loop.
E.g. search for BP_SPAN() that is used elsewhere for the same purpose.

-- 
You are receiving this mail because:
You are the assignee for the bug.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-199804-3630-xyJBrKjE1O>