kern/50691: EOT detection in sa driver prevents mutli volume dump

Nate Lawson nate at root.org
Mon Apr 7 23:10:13 PDT 2003


The following reply was made to PR kern/50691; it has been noted by GNATS.

From: Nate Lawson <nate at root.org>
To: Bruce Evans <bde at zeta.org.au>
Cc: lars at koellers.net, FreeBSD-gnats-submit at freebsd.org
Subject: Re: kern/50691: EOT detection in sa driver prevents mutli volume
 dump
Date: Mon, 7 Apr 2003 23:05:25 -0700 (PDT)

 On Tue, 8 Apr 2003, Bruce Evans wrote:
 > On Mon, 7 Apr 2003 lkoeller at freebsd.org wrote:
 > > Note: I notice a change of the behaviour of the tape driver somehow in October
 > > 2002. Till there a EOT of the tape was correct signaled by the driver during
 > > writing. After there was only an error reportet and the nuber of bytes written:
 > 
 > This was the only change in the driver between 4.7 and 4.8.
 > 
 > ----------------------------
 > revision 1.85
 > date: 2002/12/16 17:40:17;  author: trhodes;  state: Exp;  lines: +4 -0
 > The HP DAT 40 tape drive should be able to handle variable block sizes.
 > But for some reason the block size is different when a different type of
 > tape is placed in the drive.  This commit fixes that.
 > 
 > PR:		46209
 > Submitted by:	Alex Wang <alex at alexwang.com>
 > Approved by:	mjacob
 > ----------------------------
 > %%%
 > 
 > %%%
 > Index: scsi_sa.c
 > ===================================================================
 > RCS file: /home/ncvs/src/sys/cam/scsi/scsi_sa.c,v
 > retrieving revision 1.45.2.12
 > retrieving revision 1.45.2.13
 > diff -u -r1.45.2.12 -r1.45.2.13
 > --- scsi_sa.c	2 Aug 2002 06:25:56 -0000	1.45.2.12
 > +++ scsi_sa.c	17 Dec 2002 17:08:50 -0000	1.45.2.13
 > [Id change deleted]
 > @@ -304,6 +304,10 @@
 >  		  "C15*", "*"}, SA_QUIRK_VARIABLE|SA_QUIRK_NO_CPAGE, 0,
 >  	},
 >  #endif
 > +	{
 > +		{ T_SEQUENTIAL, SIP_MEDIA_REMOVABLE, "HP",
 > +		  "C56*", "*"}, SA_QUIRK_VARIABLE|SA_QUIRK_2FM, 0
 > +	},
 >  	{
 >  		{ T_SEQUENTIAL, SIP_MEDIA_REMOVABLE, "HP",
 >  		  "T20*", "*"}, SA_QUIRK_FIXED|SA_QUIRK_1FM, 512
 > %%%
 
 I agree with Bruce.  Remove the "|SA_QUIRK_2FM" from the C56 line above,
 recompile your kernel, and try again.  Let us know if this fixes things
 for you.  Variable block size has little to do with requiring 2 end of
 file marks and the original commit should have been more careful about
 this.
 
 -Nate
 


More information about the freebsd-bugs mailing list