Date: Tue, 6 Aug 2002 09:50:03 -0700 (PDT) From: Ian Dowse <iedowse@maths.tcd.ie> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/41382: ATAPI TAPE hung in atrpq Message-ID: <200208061650.g76Go3fQ074171@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/41382; it has been noted by GNATS.
From: Ian Dowse <iedowse@maths.tcd.ie>
To: Sean <sean@gothic.net.au>
Cc: FreeBSD-gnats-submit@FreeBSD.org
Subject: Re: kern/41382: ATAPI TAPE hung in atrpq
Date: Tue, 06 Aug 2002 17:47:48 +0100
In message <20020806155754.92708A6A2C@visi.gothic.net.au>, Sean writes:
> Seagte STT20000A (IDE Travan 5 tape drive) - using dump to write out
> a partition, dump hangs in 'atprq' (according to top) on
> closing the tape device.
The following patch is reported to fix this problem. Can you try
it to see if it helps?
Ian
Index: atapi-all.c
===================================================================
RCS file: /home/iedowse/CVS/src/sys/dev/ata/atapi-all.c,v
retrieving revision 1.46.2.14
diff -u -r1.46.2.14 atapi-all.c
--- atapi-all.c 14 Jul 2002 12:35:28 -0000 1.46.2.14
+++ atapi-all.c 14 Jul 2002 23:39:00 -0000
@@ -186,6 +186,7 @@
request->flags = flags;
request->timeout = timeout * hz;
request->ccbsize = atadev->param->packet_size ? 16 : 12;
+ request->error = EINPROGRESS;
bcopy(ccb, request->ccb, request->ccbsize);
if (callback) {
request->callback = callback;
@@ -215,7 +216,8 @@
}
/* wait for request to complete */
- tsleep((caddr_t)request, PRIBIO, "atprq", 0);
+ if (request->error == EINPROGRESS)
+ tsleep((caddr_t)request, PRIBIO, "atprq", 0);
splx(s);
error = request->error;
if (error)
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200208061650.g76Go3fQ074171>
