Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Aug 2002 10:40:05 -0700 (PDT)
From:      "Sean Winn" <sean@gothic.net.au>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/41382: ATAPI TAPE hung in atrpq 
Message-ID:  <200208061740.g76He5RH086263@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: "Sean Winn" <sean@gothic.net.au>
To: "Ian Dowse" <iedowse@maths.tcd.ie>
Cc: <FreeBSD-gnats-submit@FreeBSD.org>
Subject: Re: kern/41382: ATAPI TAPE hung in atrpq 
Date: Wed, 7 Aug 2002 03:34:31 +1000

 From: "Ian Dowse" <iedowse@maths.tcd.ie>
 To: "Sean" <sean@gothic.net.au>
 Cc: <FreeBSD-gnats-submit@FreeBSD.org>
 Sent: Wednesday, August 07, 2002 2:47 AM
 Subject: Re: kern/41382: ATAPI TAPE hung in atrpq
 
 
 > 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?
 
 Dump completed without a problem; makes the tape drive useful for backups
 again :)
 
 
 
 >
 > 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?200208061740.g76He5RH086263>