NetBSD Problem Report #53949

From kardel@pip.kardel.name  Tue Feb  5 13:46:34 2019
Return-Path: <kardel@pip.kardel.name>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 276D27A183
	for <gnats-bugs@gnats.NetBSD.org>; Tue,  5 Feb 2019 13:46:34 +0000 (UTC)
Message-Id: <20190205134628.B9195DA0D8C@pip.kardel.name>
Date: Tue,  5 Feb 2019 14:46:28 +0100 (CET)
From: kardel@netbsd.org
Reply-To: kardel@netbsd.org
To: gnats-bugs@NetBSD.org
Subject: SCSI st driver /dev/{e,}nrst? file mark handling broken - may overwrite tapes
X-Send-Pr-Version: 3.95

>Number:         53949
>Category:       kern
>Synopsis:       SCSI st driver /dev/{e,}nrst? file mark handling broken - may overwrite tapes
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kardel@netbsd.org
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Feb 05 13:50:01 +0000 2019
>Closed-Date:    Tue Feb 12 13:56:19 +0000 2019
>Last-Modified:  Thu Mar 07 16:55:01 +0000 2019
>Originator:     Frank Kardel
>Release:        NetBSD 8.99.34
>Organization:

>Environment:


System: NetBSD pip.kardel.name 8.99.34 NetBSD 8.99.34 (GENERIC) #2: Sun Feb 3 13:31:03 CET 2019 kardel@pip.kardel.name:/src/NetBSD/cur/src/obj.amd64/sys/arch/amd64/compile/GENERIC amd64
Architecture: x86_64
Machine: amd64
>Description:
	The SCSI st driver does not behave correctly with respect to file mark handling when the non-rewinding device modes are used.
	Writing <data>+ <file mark> to a non-rewinding device, ejecting the tape (possible since 2012-02-28 -
	ALLOW for robots within mount session), loading the same or another tape will lead to a file mark
	being written at the beginning of the freshly loaded tape even if opened O_RDONLY => empty tape (DATA LOSS)

	Additionally the SUN compatibility code to write terminating file marks when a tape is only
	opened and closed in O_WRONLY mode is broken.

>How-To-Repeat:
	(test program source enclosed below)

	Script started on Tue Feb  5 11:09:12 2019
	# TAPE=/dev/nrst1
	# export TAPE
	# mt st
	SCSI tape drive, residual=0
	ds=3<Mounted>
	er=0
	blocksize: 0 (0, 0, 0, 0)
	density: 92 (0, 0, 0, 0)
	current file number: 0
	current block number: 0
>>> write above pattern
	# ./tapetest -W $TAPE -S -w Block-1 -w Block-2 -f -C
	OPEN(W) [ds=3, err=0, res=0, file=0, blk=2]
	MTREW [ds=3, err=0, res=0, file=0, blk=0]
	WRITE Block-1... [ds=3, err=0, res=0, file=0, blk=1]
	WRITE Block-2... [ds=3, err=0, res=0, file=0, blk=2]
	MTWEOF [ds=3, err=0, res=0, file=1, blk=2]
	CLOSE
>>> re-read with MTREW (properly terminates tape)
	# ./tapetest -R $TAPE -S -r Block-1 -r Block-2 -C
	OPEN(R) [ds=3, err=0, res=0, file=1, blk=2]
	MTREW [ds=3, err=0, res=0, file=0, blk=0]
	READ Block-1[1024]... OK [ds=3, err=0, res=0, file=0, blk=1]
	READ Block-2[1024]... OK [ds=3, err=0, res=0, file=0, blk=2]
	CLOSE
>>> remove tape from drive
	# chio move drive 0 slot 13
>>> insert tape into drive
	# chio move slot 13 drive 0
	# ./tapetest -R $TAPE -r Block-1 -r Block-2 -C
>>> OPEN O_RDONLY - observe UNIT ATTENTION error (err=6)
	OPEN(R) [ds=3, err=6, res=0, file=0, blk=0]
	READ Block-1[1024]... OK [ds=3, err=0, res=0, file=0, blk=1]
	READ Block-2[1024]... OK [ds=3, err=0, res=0, file=0, blk=2]
	CLOSE
>>> write critical pattern again
	# ./tapetest -W $TAPE -S -w Block-1 -w Block-2 -f -C
	OPEN(W) [ds=3, err=0, res=0, file=0, blk=2]
	MTREW [ds=3, err=0, res=0, file=0, blk=0]
	WRITE Block-1... [ds=3, err=0, res=0, file=0, blk=1]
	WRITE Block-2... [ds=3, err=0, res=0, file=0, blk=2]
	MTWEOF [ds=3, err=0, res=0, file=1, blk=2]
	CLOSE
>>> remove tape from drive without rewinding -> mount session still exists!
	# chio move drive 0 slot 13
>>> re-insert tape (can also be another tape) into drive
	# chio move slot 13 drive 0
	# ./tapetest -R $TAPE -r Block-1 -r Block-2 -C
>>> OPEN O_RDONLY - observe UNIT ATTENTION error (err=6)
>>> leads to mount error due to UNIT ATTENTION in an existing mount session
>>> mount error recovery happily writes a file mark at the beginning of the
>>> inserted tape (ST_WRITTEN is still set in the mount session state)
	OPEN(R) [ds=3, err=6, res=0, file=0, blk=0]
>>> discover DATA LOSS
>BOOM<	READ Block-1[0]... EOF 
	tapetest: UNEXPECTED EOF
	# exit

	---
	dmesg output:
	st0: mount error (key=6)

	Script done on Tue Feb  5 11:23:29 2019

	Test program:

begin 644 tapetest.c.gz
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
8Q):XON0WD9O]>+8IOJ[Z#^TCD[C@%0``
`
end
>Fix:
	Properly terminate the tape with sufficient file marks if a data block has been written
	before close without enough file marks. This reinstates the behavior described in
	"man 4 st" with respect to file marks and close(2).

	Script started on Tue Feb  5 13:35:55 2019
	# chio move slot 13 drive 0
	# ./tapetest -W $TAPE -S -w Block-1 -w Block-2 -f -C
	OPEN(W) [ds=3, err=6, res=0, file=0, blk=0]
	MTREW [ds=3, err=0, res=0, file=0, blk=0]
	WRITE Block-1... [ds=3, err=0, res=0, file=0, blk=1]
	WRITE Block-2... [ds=3, err=0, res=0, file=0, blk=2]
	MTWEOF [ds=3, err=0, res=0, file=1, blk=2]
	CLOSE
	# ./tapetest -R $TAPE -S -r Block-1 -r Block-2 -C
	OPEN(R) [ds=3, err=0, res=0, file=1, blk=-1]
	MTREW [ds=3, err=0, res=0, file=0, blk=0]
	READ Block-1[1024]... OK [ds=3, err=0, res=0, file=0, blk=1]
	READ Block-2[1024]... OK [ds=3, err=0, res=0, file=0, blk=2]
	CLOSE
	# chio move drive 0 slot 13
	# chio move slot 13 drive 0
	# ./tapetest -R $TAPE -r Block-1 -r Block-2 -C
	OPEN(R) [ds=3, err=6, res=0, file=0, blk=0]
	READ Block-1[1024]... OK [ds=3, err=0, res=0, file=0, blk=1]
	READ Block-2[1024]... OK [ds=3, err=0, res=0, file=0, blk=2]
	CLOSE
	# ./tapetest -W $TAPE -S -w Block-1 -w Block-2 -f -C
	OPEN(W) [ds=3, err=0, res=0, file=0, blk=2]
	MTREW [ds=3, err=0, res=0, file=0, blk=0]
	WRITE Block-1... [ds=3, err=0, res=0, file=0, blk=1]
	WRITE Block-2... [ds=3, err=0, res=0, file=0, blk=2]
	MTWEOF [ds=3, err=0, res=0, file=1, blk=2]
	CLOSE
	# chio move drive 0 slot 13
	# chio move slot 13 drive 0
	# ./tapetest -R $TAPE -r Block-1 -r Block-2 -C
>>> UNIT ATTENTION
	OPEN(R) [ds=3, err=6, res=0, file=0, blk=0]
>GOOD<	READ Block-1[1024]... OK [ds=3, err=0, res=0, file=0, blk=1]
	READ Block-2[1024]... OK [ds=3, err=0, res=0, file=0, blk=2]
	CLOSE
	# exit

	Script done on Tue Feb  5 13:41:34 2019

	Patch:

begin 644 st-bugfix.diff.gz
M'XL("/)J65P``W-T+6)U9V9I>"YD:69F`*U665/C1A!^MG]%AQ2LC"5;MCF,
M"10&S):S'%O8)`^;+94LC;!B><:E&6$H(+\]W3.2C\UN+9M$+])H^NZOCSX/
MV6,'I*H%Y:/__I1OSP80Q0GK0#UXD*D0JB[3H"Z?9#UD#W49R'@6UTF=_5!.
MF4IC]A#S>TCQ)6/!H5%KMG;+81Q%X&3@I/IL[',<1W^46G#!1M!T&P?@MCJ-
M@TZS#8Z+3\EP5ZM50[B[)&RXG=UFI[5C",LG)^#L-_?MA@M5_=Z!DY,RE&"[
M7@9\2_7X"$<HQ3F.$O]>PA98@Z'W^VU_..Q=PPO@X>*J.%<.RTXICL"RK(+Z
M@JYZ%=C:`B/K");\%7AY00[`9\EQXW7/SJYNSI$)B0W_*KM;J<`S<I5BKH!/
M#\M5H_)+C3\1*5)6"TKTPSW4Q^@-ZJQU?<A66D;A9=4++;,T.//.>Z=W[RVB
MDH$W8VD\&]LP.!OT/_:]\].6#=;&X.X:`C&=^2H>Q4FLGCHP3V/%X.(*?`5!
M(B3[@V]4*B04\N<5$U%B:2I2G0HO&+-@XC$1HBX;+KJ7@YX-6WQJHZW:F+?9
M,D\%*MX,5W6#5G.T&:(1-I!(_8/L@=*KAD1]&[I)(N:0BI%0$I0`]B<+%"A_
MQ@!CRQD+65@#PI#&U]Z!W6@COO9;-B)4XZN$"(-^!"AAC"[YBDT91V%^RD"E
M&;-!C1F'.8.1'TSDS`]8P24XTZ4U]=-)+?]9S_.#&=LZ@K_60'FH:?0=ILU:
MA3+2-9&P._1Z-^<50_A-+"$HC#9":P$.:TW$RPJT-6J(?C5SVA&=-:>!Z?CH
M7?0O>U?=VP^#1>[>FCTC%;,7I6*ZE.TT*CIUB[21R%=@">;V^4?D<[$(/34F
M!TQ,,!"/FX^VKL:CXC./J#YK[?IHB%;N*WF(7\F.-9O^I<N+0EAW&8P*>H]2
MYD_H3^"CLMZOO;.A1\7>H4N4D/&IR+C2*=&WAGW!1I"OECYT!X/>[?!J\-[Z
M$C^+3D:=PB9G$!X;,\9#BMI*JR0>N+X98ITQ1'D(UC)FE8W5*!T:V\V,\.9^
MK+PP]6-NF:B0A<MK/_1GBJ5>R)*4198^(@75W8';MO>A>M!LXHNJ3A>O;NXP
MP(*E,7-0:]5:("(J-QUMD#,62%.26-MC;`P^X,B*`P9R["<)CBB5I9S:]K;F
M"AF7V,C@P4\RIMGC*$;_8JZO$U\JD%D0,!EER$[1AT'O$F--+>Y'99"0-1G:
M'3_"&(#/(>.)\$,0&"J?'+1)A,Y]K""6P`7Z,TJPR8B<,U-BBJ0!NO:$=J"<
M:8P=9M6J/#R<S6'*PCB;UC2O#G+#W=NS]Z#:<-NNW5Z&F9J;B"+)C%IVCSH>
M6`Y2/5UUIQG-G..1-THF6&Z_+.;5HAR^4@>Z7K`8>OWKW[J7M+)(A;ZR^Z>%
M%A@E(I@$!&S83$QQK"C*2\3\*9J3$:<O[@6V='\D4F4J0+O9VFNA>]5&:Q^;
M>4/[^:SW@S3#UD_M1T0J@&U,U%&.%R\18I+-O%D:/Z"!UA95;(C.#.^N^T,+
MB;0EB"0#*9B-GW#WL98>V7!]=WEIDSP;3KW;7O?<SO>%M4;A')LW-@2?<Y8X
MQ_11U(9SK#\\S"MIL"&+A2XR6@O(][?I-:7]?^G^;L=K&(W6QB?L16$'RTYF
MB<+)_%GG,^_M>>12C*.>SE2W<8"@5R9M^^T]G;:VNVLWFL5N!WWU3L+83T.:
MWF8!\9?PX=ETA.6$L*<Y"S1HI8$\G`O^#B=]^E3+ET2S[^4<A.!\'5OY\P6F
MO]WB_PEM3]OF%>/>U"_]H^9*@V!AG]E7M-(<WWEH"F!7BYD@Y[$*QH6%9DKK
M#N%V2E2X&&YJ!3[M:5.?ZQ#))QZ8EH!89AB[419%+)6FD(MQH2-^T&Y2Q)LN
M1;Q1;#M8`UQ%UL:FVWP$M'0F9.@K_Q/EX#-.$O<QBHS9!25M@?CC9YHDD5YW
M,:H%FVMX=BID\"E5.WP4V*NHI=]QK/$YSY>BKW+!\W?YWIRO]82E(2HS_8=\
M-)(S(SG?:V%E)5HFI_2JYS7M!)IB&UO53!&-MS-2(K&V"B]V/N?+Z-]6:*KD
$M`T``#G?
`
end

>Release-Note:

>Audit-Trail:

Responsible-Changed-From-To: kern-bug-people->kardel@netbsd.org
Responsible-Changed-By: kardel@NetBSD.org
Responsible-Changed-When: Tue, 05 Feb 2019 13:52:23 +0000
Responsible-Changed-Why:
mine!


From: "Frank Kardel" <kardel@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/53949 CVS commit: src/sys/dev/scsipi
Date: Tue, 12 Feb 2019 13:43:40 +0000

 Module Name:	src
 Committed By:	kardel
 Date:		Tue Feb 12 13:43:40 UTC 2019

 Modified Files:
 	src/sys/dev/scsipi: st.c

 Log Message:
 Fix PR kern/53949:

 Fix inconsistent/incomplete file mark handling to conform again
 to mtio(4) at close(2) time. This was necessary as the PREVENT/ALLOW
 bracket was reduced from a whole mount session to cover only the
 open(2)/close(2) time on ~2002-03-22. The rationale was to allow
 robots and humans to change the media during a mount session.

 Unfortunately this lead to file marks being written to potentially other
 media at the beginning on drives that used the two file marks as EOM
 pattern. In order for that to happen the media had to be removed after
 data and at most one file mark had been written before removal.

 The mount error message has been clarified and a warning about
 potential data/file mark lossage on UNIT ATTENTION
 during an active mount session with unfinished file marks has been
 added.

 While there, fix, but disable the commented SUN compatibility to write
 final file marks by opening and immediately closing the device
 in O_WRONLY mode. That code has not been working since around 1998.
 It can now be enabled with options ST_SUNCOMPAT.

 Additionally debug output coverage has been extended.


 To generate a diff of this commit:
 cvs rdiff -u -r1.235 -r1.236 src/sys/dev/scsipi/st.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: open->closed
State-Changed-By: kardel@NetBSD.org
State-Changed-When: Tue, 12 Feb 2019 13:56:19 +0000
State-Changed-Why:
Fix committed and tested on a FlexStorII with LTO7-HH drives.


From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/53949 CVS commit: [netbsd-8] src/sys/dev/scsipi
Date: Fri, 1 Mar 2019 17:29:32 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Fri Mar  1 17:29:32 UTC 2019

 Modified Files:
 	src/sys/dev/scsipi [netbsd-8]: files.scsipi st.c

 Log Message:
 Pull up following revision(s) (requested by kardel in ticket #1197):

 	sys/dev/scsipi/st.c: revision 1.236
 	sys/dev/scsipi/st.c: revision 1.237
 	sys/dev/scsipi/files.scsipi: revision 1.42

 Fix PR kern/53949:

 Fix inconsistent/incomplete file mark handling to conform again
 to mtio(4) at close(2) time. This was necessary as the PREVENT/ALLOW
 bracket was reduced from a whole mount session to cover only the
 open(2)/close(2) time on ~2002-03-22. The rationale was to allow
 robots and humans to change the media during a mount session.

 Unfortunately this lead to file marks being written to potentially other
 media at the beginning on drives that used the two file marks as EOM
 pattern. In order for that to happen the media had to be removed after
 data and at most one file mark had been written before removal.

 The mount error message has been clarified and a warning about
 potential data/file mark lossage on UNIT ATTENTION
 during an active mount session with unfinished file marks has been
 added.

 While there, fix, but disable the commented SUN compatibility to write
 final file marks by opening and immediately closing the device
 in O_WRONLY mode. That code has not been working since around 1998.
 It can now be enabled with options ST_SUNCOMPAT.
 Additionally debug output coverage has been extended.

  -

 Correct printing type of b_blkno (int64_t) in st.c

 Fixes build with kUBSan on NetBSD/i386.
   Fix, but disable the commented SUN compatibility in st.c to write
   final file marks by opening and immediately closing the device
   in O_WRONLY mode. That code has not been working since around 1998.
   It can now be enabled with options ST_SUNCOMPAT.


 To generate a diff of this commit:
 cvs rdiff -u -r1.41 -r1.41.156.1 src/sys/dev/scsipi/files.scsipi
 cvs rdiff -u -r1.230.8.2 -r1.230.8.3 src/sys/dev/scsipi/st.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: Frank Kardel <kardel@netbsd.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: PR/53949 CVS commit: [netbsd-8] src/sys/dev/scsipi
Date: Fri, 1 Mar 2019 18:38:07 +0100

 Thanks for the pullup.

 Frank


 On 03/01/19 18:30, Martin Husemann wrote:
 > The following reply was made to PR kern/53949; it has been noted by GNATS.
 >
 > From: "Martin Husemann" <martin@netbsd.org>
 > To: gnats-bugs@gnats.NetBSD.org
 > Cc:
 > Subject: PR/53949 CVS commit: [netbsd-8] src/sys/dev/scsipi
 > Date: Fri, 1 Mar 2019 17:29:32 +0000
 >
 >   Module Name:	src
 >   Committed By:	martin
 >   Date:		Fri Mar  1 17:29:32 UTC 2019
 >   
 >   Modified Files:
 >   	src/sys/dev/scsipi [netbsd-8]: files.scsipi st.c
 >   
 >   Log Message:
 >   Pull up following revision(s) (requested by kardel in ticket #1197):
 >   
 >   	sys/dev/scsipi/st.c: revision 1.236
 >   	sys/dev/scsipi/st.c: revision 1.237
 >   	sys/dev/scsipi/files.scsipi: revision 1.42
 >   
 >   Fix PR kern/53949:
 >   
 >   Fix inconsistent/incomplete file mark handling to conform again
 >   to mtio(4) at close(2) time. This was necessary as the PREVENT/ALLOW
 >   bracket was reduced from a whole mount session to cover only the
 >   open(2)/close(2) time on ~2002-03-22. The rationale was to allow
 >   robots and humans to change the media during a mount session.
 >   
 >   Unfortunately this lead to file marks being written to potentially other
 >   media at the beginning on drives that used the two file marks as EOM
 >   pattern. In order for that to happen the media had to be removed after
 >   data and at most one file mark had been written before removal.
 >   
 >   The mount error message has been clarified and a warning about
 >   potential data/file mark lossage on UNIT ATTENTION
 >   during an active mount session with unfinished file marks has been
 >   added.
 >   
 >   While there, fix, but disable the commented SUN compatibility to write
 >   final file marks by opening and immediately closing the device
 >   in O_WRONLY mode. That code has not been working since around 1998.
 >   It can now be enabled with options ST_SUNCOMPAT.
 >   Additionally debug output coverage has been extended.
 >   
 >    -
 >   
 >   Correct printing type of b_blkno (int64_t) in st.c
 >   
 >   Fixes build with kUBSan on NetBSD/i386.
 >     Fix, but disable the commented SUN compatibility in st.c to write
 >     final file marks by opening and immediately closing the device
 >     in O_WRONLY mode. That code has not been working since around 1998.
 >     It can now be enabled with options ST_SUNCOMPAT.
 >   
 >   
 >   To generate a diff of this commit:
 >   cvs rdiff -u -r1.41 -r1.41.156.1 src/sys/dev/scsipi/files.scsipi
 >   cvs rdiff -u -r1.230.8.2 -r1.230.8.3 src/sys/dev/scsipi/st.c
 >   
 >   Please note that diffs are not public domain; they are subject to the
 >   copyright notices on the relevant files.
 >   

From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/53949 CVS commit: [netbsd-7] src/sys/dev/scsipi
Date: Thu, 7 Mar 2019 16:49:10 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Thu Mar  7 16:49:10 UTC 2019

 Modified Files:
 	src/sys/dev/scsipi [netbsd-7]: files.scsipi st.c

 Log Message:
 Pull up following revision(s) (requested by kardel in ticket #1682):

 	sys/dev/scsipi/st.c: revision 1.236 (patch)
 	sys/dev/scsipi/st.c: revision 1.237
 	sys/dev/scsipi/files.scsipi: revision 1.42

 Fix PR kern/53949:
 Fix inconsistent/incomplete file mark handling to conform again
 to mtio(4) at close(2) time. This was necessary as the PREVENT/ALLOW
 bracket was reduced from a whole mount session to cover only the
 open(2)/close(2) time on ~2002-03-22. The rationale was to allow
 robots and humans to change the media during a mount session.

 Unfortunately this lead to file marks being written to potentially other
 media at the beginning on drives that used the two file marks as EOM
 pattern. In order for that to happen the media had to be removed after
 data and at most one file mark had been written before removal.

 The mount error message has been clarified and a warning about
 potential data/file mark lossage on UNIT ATTENTION
 during an active mount session with unfinished file marks has been
 added.

 While there, fix, but disable the commented SUN compatibility to write
 final file marks by opening and immediately closing the device
 in O_WRONLY mode. That code has not been working since around 1998.

 It can now be enabled with options ST_SUNCOMPAT.

 Additionally debug output coverage has been extended.

 Correct printing type of b_blkno (int64_t) in st.c

 Fixes build with kUBSan on NetBSD/i386.

 Fix, but disable the commented SUN compatibility in st.c to write
 final file marks by opening and immediately closing the device
 in O_WRONLY mode. That code has not been working since around 1998.
 It can now be enabled with options ST_SUNCOMPAT.


 To generate a diff of this commit:
 cvs rdiff -u -r1.41 -r1.41.138.1 src/sys/dev/scsipi/files.scsipi
 cvs rdiff -u -r1.226 -r1.226.2.1 src/sys/dev/scsipi/st.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/53949 CVS commit: [netbsd-7-1] src/sys/dev/scsipi
Date: Thu, 7 Mar 2019 16:50:58 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Thu Mar  7 16:50:58 UTC 2019

 Modified Files:
 	src/sys/dev/scsipi [netbsd-7-1]: files.scsipi st.c

 Log Message:
 Pull up following revision(s) (requested by kardel in ticket #1682):

 	sys/dev/scsipi/st.c: revision 1.236 (patch)
 	sys/dev/scsipi/st.c: revision 1.237
 	sys/dev/scsipi/files.scsipi: revision 1.42

 Fix PR kern/53949:
 Fix inconsistent/incomplete file mark handling to conform again
 to mtio(4) at close(2) time. This was necessary as the PREVENT/ALLOW
 bracket was reduced from a whole mount session to cover only the
 open(2)/close(2) time on ~2002-03-22. The rationale was to allow
 robots and humans to change the media during a mount session.

 Unfortunately this lead to file marks being written to potentially other
 media at the beginning on drives that used the two file marks as EOM
 pattern. In order for that to happen the media had to be removed after
 data and at most one file mark had been written before removal.

 The mount error message has been clarified and a warning about
 potential data/file mark lossage on UNIT ATTENTION
 during an active mount session with unfinished file marks has been
 added.

 While there, fix, but disable the commented SUN compatibility to write
 final file marks by opening and immediately closing the device
 in O_WRONLY mode. That code has not been working since around 1998.

 It can now be enabled with options ST_SUNCOMPAT.

 Additionally debug output coverage has been extended.

 Correct printing type of b_blkno (int64_t) in st.c

 Fixes build with kUBSan on NetBSD/i386.

 Fix, but disable the commented SUN compatibility in st.c to write
 final file marks by opening and immediately closing the device
 in O_WRONLY mode. That code has not been working since around 1998.
 It can now be enabled with options ST_SUNCOMPAT.


 To generate a diff of this commit:
 cvs rdiff -u -r1.41 -r1.41.150.1 src/sys/dev/scsipi/files.scsipi
 cvs rdiff -u -r1.226 -r1.226.10.1 src/sys/dev/scsipi/st.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/53949 CVS commit: [netbsd-7-0] src/sys/dev/scsipi
Date: Thu, 7 Mar 2019 16:51:51 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Thu Mar  7 16:51:51 UTC 2019

 Modified Files:
 	src/sys/dev/scsipi [netbsd-7-0]: files.scsipi st.c

 Log Message:
 Pull up following revision(s) (requested by kardel in ticket #1682):

 	sys/dev/scsipi/st.c: revision 1.236 (patch)
 	sys/dev/scsipi/st.c: revision 1.237
 	sys/dev/scsipi/files.scsipi: revision 1.42

 Fix PR kern/53949:
 Fix inconsistent/incomplete file mark handling to conform again
 to mtio(4) at close(2) time. This was necessary as the PREVENT/ALLOW
 bracket was reduced from a whole mount session to cover only the
 open(2)/close(2) time on ~2002-03-22. The rationale was to allow
 robots and humans to change the media during a mount session.

 Unfortunately this lead to file marks being written to potentially other
 media at the beginning on drives that used the two file marks as EOM
 pattern. In order for that to happen the media had to be removed after
 data and at most one file mark had been written before removal.

 The mount error message has been clarified and a warning about
 potential data/file mark lossage on UNIT ATTENTION
 during an active mount session with unfinished file marks has been
 added.

 While there, fix, but disable the commented SUN compatibility to write
 final file marks by opening and immediately closing the device
 in O_WRONLY mode. That code has not been working since around 1998.

 It can now be enabled with options ST_SUNCOMPAT.

 Additionally debug output coverage has been extended.

 Correct printing type of b_blkno (int64_t) in st.c

 Fixes build with kUBSan on NetBSD/i386.

 Fix, but disable the commented SUN compatibility in st.c to write
 final file marks by opening and immediately closing the device
 in O_WRONLY mode. That code has not been working since around 1998.
 It can now be enabled with options ST_SUNCOMPAT.


 To generate a diff of this commit:
 cvs rdiff -u -r1.41 -r1.41.142.1 src/sys/dev/scsipi/files.scsipi
 cvs rdiff -u -r1.226 -r1.226.6.1 src/sys/dev/scsipi/st.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.43 2018/01/16 07:36:43 maya Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2017 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.