Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Mar 1999 08:47:27 +0930
From:      Greg Lehey <grog@lemis.com>
To:        Matt of the Long Red Hair <mattp@conundrum.com>
Cc:        freebsd-questions@FreeBSD.ORG
Subject:   Re: newfs of ccd0 crashes
Message-ID:  <19990330084727.L413@lemis.com>
In-Reply-To: <Pine.BSF.4.10.9903290112081.5267-100000@aeon.conundrum.com>; from Matt of the Long Red Hair on Mon, Mar 29, 1999 at 01:16:25AM -0500
References:  <19990329103342.M413@lemis.com> <Pine.BSF.4.10.9903290112081.5267-100000@aeon.conundrum.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday, 29 March 1999 at  1:16:25 -0500, Matt of the Long Red Hair wrote:
> On Mon, 29 Mar 1999, Greg Lehey wrote:
>
>> OK.  That should be revision 1.37.  They brought in a fix for a
>> certain overflow problem on 11 March.  It fixes a bug that happens on
>> ccds over 2 GB in size.  You can try the following patch to
>> /usr/src/sys/dev/ccd/ccd.c and see if it works:
>
> 1.37.2.1, actually... the patch failed (hunks 2 and 3 don't match).
>
> /* $Id: ccd.c,v 1.37.2.1 1999/02/18 22:06:00 ken Exp $ */

You said your system was from the end of January.  OK, try this:

--- ccd.c       1999/02/18 22:06:00     1.37.2.1
+++ ccd.c       1999/03/11 19:21:31     1.37.2.2
@@ -1,4 +1,4 @@
-/* $Id: ccd.c,v 1.37.2.1 1999/02/18 22:06:00 ken Exp $ */
+/* $Id: ccd.c,v 1.37.2.2 1999/03/11 19:21:31 dg Exp $ */
 
 /*     $NetBSD: ccd.c,v 1.22 1995/12/08 19:13:26 thorpej Exp $ */
 
@@ -825,6 +825,7 @@
        register struct ccdcinfo *ci, *ci2 = NULL;      /* XXX */
        register struct ccdbuf *cbp;
        register daddr_t cbn, cboff;
+      register off_t cbc;
 
 #ifdef DEBUG
        if (ccddebug & CCDB_IO)
@@ -903,11 +904,10 @@
        LIST_INIT(&cbp->cb_buf.b_dep);
        cbp->cb_buf.b_resid = 0;
        if (cs->sc_ileave == 0)
-               cbp->cb_buf.b_bcount = dbtob(ci->ci_size - cbn);
+              cbc = dbtob((off_t)(ci->ci_size - cbn));
        else
-               cbp->cb_buf.b_bcount = dbtob(cs->sc_ileave - cboff);
-       if (cbp->cb_buf.b_bcount > bcount)
-               cbp->cb_buf.b_bcount = bcount;
+              cbc = dbtob((off_t)(cs->sc_ileave - cboff));
+      cbp->cb_buf.b_bcount = (cbc < bcount) ? cbc : bcount;
 
        cbp->cb_buf.b_bufsize = cbp->cb_buf.b_bcount;
 
> I'm not sure of the right cvs commands to generate the diff, but if
> you want to let me know, I can just grab my own.

It's described in the handbook and in "The Complete FreeBSD", second
edition.  It's a bit too involved to describe here.

>>>> 2.  What do you mean by "crash"?  Is it a panic, a spontaneous reboot
>>>>     or a hang?
>>>
>>> It's a hang.  The machine locks up so that I have to hard-reset it.
>>
>> Bad news.  If the patch doesn't work, see if you can create a smaller
>> (< 2GB) ccd and newfs that.
>>
>> Of course, the alternative is Vinum, which is much more powerful.  See
>> http://www.lemis.com/vinum.html for more details.
>
> This might be worth looking at.   I hear it's a lot like Veritas, but my
> experiences with Veritas (on Sun storage arrays, and mostly second-hand) are
> less than positive. 

That's not quite typical.  Veritas is (or was) a pig to administer,
but I've always found it pretty reliable.

> Is Vinum much more reliable?

No, but also not less reliable :-) I've gone to a lot of trouble to
make it easy to administer, but not everybody agrees that I've
succeeded.  It's certainly a lot easier than ccd.

Greg
--
When replying to this message, please copy the original recipients.
For more information, see http://www.lemis.com/questions.html
See complete headers for address, home page and phone numbers
finger grog@lemis.com for PGP public key


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




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