On Sun, Jul 20, 2014 at 9:34 PM, Matthew Ahrens <[email protected]> wrote:

> https://reviews.csiden.org/r/51/diff/#
>
> Note: this change is not part of the Delphix product, and therefore has
> had less rigorous testing than most of the changes I submit.  I would
> appreciate a thorough code review and also any testing others can offer.
>  Diffs can be downloaded via the link above, or from
> https://github.com/ahrens/illumos/tree/largeblock
>
>
Thanks to my 3 reviewers so far: Saso, Josef, and George.

I discovered a problem with the way we were setting the ds_largeblocks flag
and associated on-disk flag DS_FIELD_LARGE_BLOCKS.  Previously we only set
it on the filesystem whose "recordsize" property was increased, ignoring
the fact that it could be inherited.

I reworked this so that we set ds_largeblocks when we first sync out a
large block in each dataset.  Because ds_largeblocks is now set reactively,
we can not use it to determine the maximum block size allowed in the
filesystem (it won't be set before the first large block is written).  It
turns out most places don't need to know.  Most of them can use
spa_maxblocksize(), which is based on whether the feature is enabled.  The
few that do need per-filesystem ideas of the max block size now use the
recordsize property.

Also, I updated ztest to use block sizes up to 1MB.

I plan to submit an RTI once George gives me a ship-it.  Let me know if
anyone else would like more time to review or test these changes.

--matt
_______________________________________________
developer mailing list
[email protected]
http://lists.open-zfs.org/mailman/listinfo/developer

Reply via email to