Kenneth R Westerback wrote:
> Weird. Try this diff, which should let me know which partition is
> being opened. i.e. why is rawopen different in 4.6 and -current.
> Also, what is your fstab?
>
> .... Ken
>
> Index: sd.c
> ===================================================================
> RCS file: /cvs/src/sys/scsi/sd.c,v
> retrieving revision 1.182
> diff -u -p -r1.182 sd.c
> --- sd.c 15 Jan 2010 05:50:31 -0000 1.182
> +++ sd.c 24 Jan 2010 02:07:47 -0000
> @@ -324,6 +324,8 @@ sdopen(dev_t dev, int flag, int fmt, str
> part = DISKPART(dev);
>
> rawopen = (part == RAW_PART) && (fmt == S_IFCHR);
> + printf("sdopen: part == %c, rawopen == %d, fmt == %d\n", 'a' + part,
> rawopen,
> + fmt);
>
> sc = sdlookup(unit);
> if (sc == NULL)
> @@ -357,9 +359,8 @@ sdopen(dev_t dev, int flag, int fmt, str
> } else {
> /* Spin up non-UMASS devices ready or not. */
> if ((sc->sc_link->flags & SDEV_UMASS) == 0)
> - scsi_start(sc_link, SSS_START, (rawopen ? SCSI_SILENT :
> - 0) | SCSI_IGNORE_ILLEGAL_REQUEST |
> - SCSI_IGNORE_MEDIA_CHANGE);
> + scsi_start(sc_link, SSS_START, SCSI_SILENT |
> + SCSI_IGNORE_ILLEGAL_REQUEST |
> SCSI_IGNORE_MEDIA_CHANGE);
>
> /* Use sd_interpret_sense() for sense errors.
> *
>
The following is printed, with or without the floppy.
sdopen: part == c, rawopen == 0, fmt == 24576
sdopen: part == c, rawopen == 1, fmt == 8192
If a floppy is inserted, those lines are delayed while it's reading the
disk.
There isn't anything fancy in my fstab, my root disk is wd0.
---
root on wd0a swap on wd0b dump on wd0b
--
/dev/wd0a / ffs rw 1 1
/dev/wd0d /tmp ffs rw,nodev,nosuid 1 2
/dev/wd0e /var ffs rw,nodev,nosuid 1 2
/dev/wd0f /usr ffs rw,nodev 1 2
/dev/wd0g /home ffs rw,nodev,nosuid 1 2
Thanks Ken.
-Bryan.