Forced commit so that some more detail on the previous patches can be

inserted into comments. I really think that more testing was required,
but Christos was eager.

+ Add in tape block/file position reporting support.

+ Change the prevent/allow ejection code so that if the device
  is close the tape can be ejected. This allows robots to eject
  the tape even if the tape isn't at BOT.

+ Don't do a null filemark write if we're reading block position. This
  was such an abysmal performance killer that it had to go. Assume
  that the tape will DTRT and tell you what the tape position really is
  including any buffered data. You are depending on the tape to do
  the right thing to report position at all, so the risk factors don't
  increase appreciably here. BTW- we only do this for logical block
  position. For 'hardware' block position, we still flush.

+ Some substantial tweaking in st_interpret_sense. This essentially duplicates
  the FreeBSD driver's exception handling code. This is to try and correctly
  handle EOM cases. I'm not sure that this is now correct with respect to
  the ENABLE EARLY WARNING code- I hadn't gotten around to validating that.
  Add in full 32 bit residuals- this can then be available to an update
  MTIOCGET in the future.

+ Make sure we handle SKEY_VOLUME_OVERFLOW correctly.
This commit is contained in:
mjacob 2002-03-22 02:03:30 +00:00
parent fe74b56f01
commit ff9ae73488

View File

@ -1,5 +1,4 @@
/* $NetBSD: st.c,v 1.150 2002/03/20 14:53:59 christos Exp $ */
/* $NetBSD: st.c,v 1.151 2002/03/22 02:03:30 mjacob Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
* All rights reserved.
@ -57,7 +56,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: st.c,v 1.150 2002/03/20 14:53:59 christos Exp $");
__KERNEL_RCSID(0, "$NetBSD: st.c,v 1.151 2002/03/22 02:03:30 mjacob Exp $");
#include "opt_scsi.h"