svn commit: r216230 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs

Pawel Jakub Dawidek pjd at
Tue Dec 7 11:31:59 UTC 2010

On Tue, Dec 07, 2010 at 12:25:28PM +0100, Ivan Voras wrote:
> On 7 December 2010 11:21, Pawel Jakub Dawidek <pjd at> wrote:
> > PS. Do you know your change breaks all current ZFS installation if
> > stripesize is defined for a provider?
> >
> >        # zpool create tank ada0
> >        (upgrade FreeBSD so that ada0 now reports 4kB stripesize)
> >        # zpool import tank
> >        cannot import 'tank': invalid vdev configuration
> Actually I did test the patch and, similar to the Solaris people,
> found that ZFS records ashift in metadata and uses the recorded one
> instead of hardcoded / detected one. What you found here really
> shouldn't happen. Are you sure only stripesize was increased in your
> case, not sectorsize?

	if (pp->stripesize > pp->sectorsize)
		*ashift = highbit(MIN(pp->stripesize, SPA_MAXBLOCKSIZE)) - 1;
		*ashift = highbit(MAX(pp->sectorsize, SPA_MINBLOCKSIZE)) - 1;

If stripesize will start to be 4096, the ashift will change.

Not sure what you test was, but it only works the other way around -
create pool with 4kB ashift and import it when ashift is 512 bytes.

Pawel Jakub Dawidek             
pjd at                 
FreeBSD committer                         Am I Evil? Yes, I Am!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url :

More information about the svn-src-all mailing list