--- /var/current/src/sys/cam/scsi/scsi_pass.c 2008-11-22 16:58:50.000000000 +0800 +++ /usr/src/sys/cam/scsi/scsi_pass.c 2008-12-21 12:59:36.000000000 +0800 @@ -347,8 +347,10 @@ if ((softc->flags & PASS_FLAG_OPEN) == 0) { softc->flags |= PASS_FLAG_OPEN; } else { - /* Device closes aren't symmertical, so fix up the refcount */ + /* Device closes aren't symmetrical, so fix up the refcount */ + cam_periph_unlock(periph); cam_periph_release(periph); + return(EINVAL); } cam_periph_unlock(periph);