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