Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Oct 2000 22:38:39 -0800 (PST)
From:      Matt Dillon <dillon@earth.backplane.com>
To:        Warner Losh <imp@village.org>
Cc:        John Baldwin <jhb@FreeBSD.ORG>, arch@FreeBSD.ORG, obrien@FreeBSD.ORG
Subject:   Re: Like to commit my diskprep 
Message-ID:  <200011010638.eA16cdU26323@earth.backplane.com>
References:  <XFMail.001031195213.jhb@FreeBSD.org>   <200011010414.eA14EiV42330@billy-club.village.org>

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

:
:Now that I'm less mobile, I've been able to take a close look at the
:code.  It looks fairly good and will make diskprep's life easier in
:many ways.  The new ioctl isn't strictly necessary, but does make life
:easier for disklabel to figure things out.  I was able to divine this
:information from fdisk's output...
:
:I also see why I thought Matt's code added an mbr on top of that,
:which was a pilot error on my part.
:
:Warner

    Well, ok... now that someone has actually bothered to look at the
    patch :-(.

    The patch really isn't that big a deal.  Keep in mind that the existing
    ioctl, DIOCGDINFO,  was hacked to pieces years ago to pull double duty. For
    some (but not all devices), if there is no valid label the above
    function will return a virgin label.  DIOCGDINFO also aliases the
    first FreeBSD slice to da0 if there is a valid slice (that isn't
    dangerously dedicated), god knows why.  Even worse, on top of the
    massive confusion these hacks already cause, the dangerously dedicated
    label will tend to look like a real label to a DOS program or to fdisk
    showing FreeBSD on s4, but with a dangerously dedicated label you can't
    specify slice 4 in any of the FreeBSD disk handling commands, you can
    only specify the base disk.  It makes a twisted sort of sense but
    the result is mass confusion.

    The original ioctl should never have been hacked to do double duty or
    to alias... there really should have been a DIOCGVIRGIN ioctl
    from the get-go and specifying 'da0' instead of 'da0s1' for a real slice
    should have never been hacked to work.  The DIOCGDINFO ioctl should
    have been made to return an error if the requested disklabel did not
    exist rather then fake one up, and we should never have started aliasing
    da0s1 to da0 in the slice-case.

    I don't think we can unwind this mess easily, but we can at least make
    system programs like disklabel behave in a consistent and rational
    manner.

						-Matt



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




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