Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Mar 2001 14:59:02 -0500 (EST)
From:      Andrew Gallatin <gallatin@cs.duke.edu>
To:        obrien@FreeBSD.ORG
Cc:        freebsd-alpha@FreeBSD.ORG
Subject:   Re: Is `ccd' broken on Alpha?
Message-ID:  <15043.37894.906784.213672@grasshopper.cs.duke.edu>
In-Reply-To: <20010328203437.A91793@dragon.nuxi.com>
References:  <20010328000954.C18676@dragon.nuxi.com> <15042.28453.158495.901316@grasshopper.cs.duke.edu> <20010328151704.A89023@dragon.nuxi.com> <15042.37922.136513.58056@grasshopper.cs.duke.edu> <15042.39091.263461.18565@grasshopper.cs.duke.edu> <20010328203437.A91793@dragon.nuxi.com>

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

David O'Brien writes:
 > On Wed, Mar 28, 2001 at 09:06:43PM -0500, Andrew Gallatin wrote:
 > > It works again on da1e/da2e for me.  I'm running the top of the tree;
 > > world built this afternoon.
 > 
 > That actually isn't the issue. :-)
 > Can you repeat this, but use ccd0e rather than ccd0c?

Do'h. Ok, I see the problem.  bounds_check_with_label() is basically
commented out and always returns -1 on alpha (without marking an error
in the buf).  I think ccd is the only caller of
bounds_check_with_label() (vinum has its own version).

Uncommenting it seems to fix the problem.  Try the appended patch...
I'm not really sure I understand why it was commented out in the first
place; but I don't know a lot about disklabel handling.

Assuming you have a label that looks like this on a pc:

8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  c:  2620928        0    unused        0     0         # (Cyl.    0 - 1279*)
  e:  2620928        0    4.2BSD     1024  8192    22   # (Cyl.    0 - 1279*)


What happens if you do dd if=/dev/zero of=/dev/ccd0e count=1 ?
On the alpha, it blows away the label and leaves me with this:

3 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  c:  2620928        0    4.2BSD        0     0     0   # (Cyl.    0 - 1279*)
Warning, partition c is not marked as unused!
Warning, An incorrect partition c may cause problems for standard system utilities


Cheers,

Drew

Index: alpha/alpha/machdep.c
===================================================================
RCS file: /home/ncvs/src/sys/alpha/alpha/machdep.c,v
retrieving revision 1.119
diff -u -r1.119 machdep.c
--- alpha/alpha/machdep.c	2001/03/28 09:03:19	1.119
+++ alpha/alpha/machdep.c	2001/03/29 19:38:25
@@ -2020,7 +2020,6 @@
 int
 bounds_check_with_label(struct bio *bp, struct disklabel *lp, int wlabel)
 {
-#if 0
         struct partition *p = lp->d_partitions + dkpart(bp->bio_dev);
         int labelsect = lp->d_partitions[0].p_offset;
         int maxsz = p->p_size,
@@ -2067,7 +2066,7 @@
 
 bad:
         bp->bio_flags |= BIO_ERROR;
-#endif
+
         return(-1);
 
 }

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




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