Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Nov 2009 17:04:41 -0800
From:      Matt Reimer <mattjreimer@gmail.com>
To:        =?ISO-8859-2?Q?Radek_Val=E1=B9ek?= <valin@buchlovice.org>
Cc:        freebsd-fs@freebsd.org, freebsd-current@freebsd.org, rnoland@freebsd.org
Subject:   Re: GPT boot with ZFS RAIDZ "ZFS: i/o error - all block copies  unavailable"
Message-ID:  <f383264b0911121704p544cd8gb250ce173c013363@mail.gmail.com>
In-Reply-To: <f383264b0911121654g3d15690eq4e6c92355e5368b6@mail.gmail.com>
References:  <4AD710D6.70404@buchlovice.org> <f383264b0911121654g3d15690eq4e6c92355e5368b6@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
2009/11/12 Matt Reimer <mattjreimer@gmail.com>:
>
> Radek,
>
> Try the attached patch (sponsored by VPOP Technologies). I found an
> overflow in /sys/cddl/boot/zfs/zfssubr.c:vdev_raidz_read() that was
> causing my 6x1TB raidz2 array to fail to boot.
>
> Apply the patch, build everything in /sys/boot, and then make sure you
> update both gptzfsboot and /boot/loader.

Oops, here's the patch.

Matt

[-- Attachment #2 --]
--- zfssubr.c.orig	2009-10-24 18:10:29.000000000 -0700
+++ zfssubr.c	2009-11-12 16:37:05.000000000 -0800
@@ -550,7 +550,8 @@
 	uint64_t s = psize >> unit_shift;
 	uint64_t f = b % dcols;
 	uint64_t o = (b / dcols) << unit_shift;
-	int q, r, c, c1, bc, col, acols, coff, devidx, asize, n;
+	uint64_t q, r, coff;
+	int c, c1, bc, col, acols, devidx, asize, n;
 	static raidz_col_t cols[16];
 	raidz_col_t *rc, *rc1;
 

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f383264b0911121704p544cd8gb250ce173c013363>