ZFS panic: wrong length 131072 for sectorsize 2352

Andriy Gapon avg at icyb.net.ua
Wed May 26 11:15:44 UTC 2010


on 25/05/2010 22:27 Pawel Jakub Dawidek said the following:
> On Tue, May 25, 2010 at 03:20:26AM -0500, James R. Van Artsdalen wrote:
>> On 5/24/2010 10:27 AM, James R. Van Artsdalen wrote:
>>> panic: wrong length 131072 for sectorsize 2352
>> This fixes the bug.
> 
> I don't think so:) size should be properly calculated at this point and
> should be multiple of sectorsize. The problem is that vdev_geom_io()
> splits request into MAXPHYS chunks if it is too big, which is wrong,
> because MAXPHYS doesn't have to be multiple of sectorsize.

But do we really want to support here sector sizes that are not power of two?
And/or MAXPHYS which is not power of two?

> Could you try this patch instead:
> 
> 	http://people.freebsd.org/~pjd/patches/vdev_geom.c.4.patch

Otherwise MAXPHYS % cp->provider->sectorsize would always be zero.

>> Index: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
>> ===================================================================
>> --- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c  (revision 208373)
>> +++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c  (working copy)
>> @@ -250,6 +250,9 @@
>>                 if ((offset % pp->sectorsize) != 0)
>>                         continue;
>>
>> +               if ((size % pp->sectorsize) != 0)
>> +                       continue;
>> +
>>                 if (vdev_geom_io(cp, BIO_READ, label, offset, size) != 0)
>>                         continue;
>>                 buf = label->vl_vdev_phys.vp_nvlist;
> 


-- 
Andriy Gapon


More information about the freebsd-fs mailing list