diff options
author | Kenneth R Westerback <krw@cvs.openbsd.org> | 2022-02-27 02:27:56 +0000 |
---|---|---|
committer | Kenneth R Westerback <krw@cvs.openbsd.org> | 2022-02-27 02:27:56 +0000 |
commit | b868150c75e7821c9a0e73a0e67d869263e50b02 (patch) | |
tree | 4cae57165315a85cc236e442853848171c42d064 | |
parent | 8eeea038b64fd69216520982e51f8c3823243df2 (diff) |
SC_DEBUG() requires an initialized scsi_link. Shuffle
code to make it so.
Pointed out by clang when prodded with SCSIDEBUG.
-rw-r--r-- | sys/scsi/sd.c | 10 | ||||
-rw-r--r-- | sys/scsi/st.c | 6 |
2 files changed, 8 insertions, 8 deletions
diff --git a/sys/scsi/sd.c b/sys/scsi/sd.c index bb19ee0cd92..7e5570fb9b2 100644 --- a/sys/scsi/sd.c +++ b/sys/scsi/sd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sd.c,v 1.330 2021/10/24 16:57:30 mpi Exp $ */ +/* $OpenBSD: sd.c,v 1.331 2022/02/27 02:27:55 krw Exp $ */ /* $NetBSD: sd.c,v 1.111 1997/04/02 02:29:41 mycroft Exp $ */ /*- @@ -315,10 +315,6 @@ sdopen(dev_t dev, int flag, int fmt, struct proc *p) unit = DISKUNIT(dev); part = DISKPART(dev); - SC_DEBUG(link, SDEV_DB1, - ("sdopen: dev=0x%x (unit %d (of %d), partition %d)\n", dev, unit, - sd_cd.cd_ndevs, part)); - rawopen = (part == RAW_PART) && (fmt == S_IFCHR); sc = sdlookup(unit); @@ -330,6 +326,10 @@ sdopen(dev_t dev, int flag, int fmt, struct proc *p) } link = sc->sc_link; + SC_DEBUG(link, SDEV_DB1, + ("sdopen: dev=0x%x (unit %d (of %d), partition %d)\n", dev, unit, + sd_cd.cd_ndevs, part)); + if (ISSET(flag, FWRITE) && ISSET(link->flags, SDEV_READONLY)) { device_unref(&sc->sc_dev); return EACCES; diff --git a/sys/scsi/st.c b/sys/scsi/st.c index 7cee3848fa9..34ee76916f6 100644 --- a/sys/scsi/st.c +++ b/sys/scsi/st.c @@ -1,4 +1,4 @@ -/* $OpenBSD: st.c,v 1.188 2022/01/11 23:10:11 jsg Exp $ */ +/* $OpenBSD: st.c,v 1.189 2022/02/27 02:27:55 krw Exp $ */ /* $NetBSD: st.c,v 1.71 1997/02/21 23:03:49 thorpej Exp $ */ /* @@ -360,8 +360,8 @@ stopen(dev_t dev, int flags, int fmt, struct proc *p) if (st == NULL) return ENXIO; if (ISSET(st->flags, ST_DYING)) { - error = ENXIO; - goto done; + device_unref(&st->sc_dev); + return ENXIO; } link = st->sc_link; |