- if ((sc->sc_dsreg & HTDS_MOL) == 0 ||
- (flag&FWRITE) && (sc->sc_dsreg&HTDS_WRL) ||
- (sc->sc_dsreg & HTDS_BOT) == 0 && (flag&FWRITE) &&
- dens != sc->sc_dens) {
+ htcommand(dev, HT_SENSE, 1);
+ sc->sc_dens = olddens;
+ if ((sc->sc_dsreg & HTDS_MOL) == 0) {
+ uprintf("tu%d: not online\n", tuunit);
+ u.u_error = EIO;
+ return;
+ }
+ if ((flag&FWRITE) && (sc->sc_dsreg&HTDS_WRL)) {
+ uprintf("tu%d: no write ring\n", tuunit);
+ u.u_error = EIO;
+ return;
+ }
+ if ((sc->sc_dsreg & HTDS_BOT) == 0 && (flag&FWRITE) &&
+ dens != sc->sc_dens) {
+ uprintf("tu%d: can't change density in mid-tape\n", tuunit);