On Tue, Dec 07, 2010 at 12:25:28PM +0100, Ivan Voras wrote: > On 7 December 2010 11:21, Pawel Jakub Dawidek <p...@freebsd.org> 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; else *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 http://www.wheelsystems.com p...@freebsd.org http://www.FreeBSD.org FreeBSD committer Am I Evil? Yes, I Am!
pgpSLtqgvdycM.pgp
Description: PGP signature