Re: star quitting when changing tapes

Joerg Schilling <[email protected]> Mon, 12 Jun 2006 21:16:14 +0200
Newsgroups gmane.comp.archivers.star.user
Message-ID <448DBD7E.nailHM311B26A@burner>
Dan <[email protected]> wrote:

> open("/dev/nst0", O_RDWR|O_CREAT|O_LARGEFILE, 0666) = 4
> fcntl64(4, F_GETFL)                     = 0x8002 (flags O_RDWR|O_LARGEFILE)
> fstat64(4, {st_mode=S_IFCHR|0660, st_rdev=makedev(9, 128), ...}) = 0
> ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfa0b804) = -1 EINVAL (Invalid argument)
>
> Joerg, can you point me to where in the code this ioctl is sent?  A kernel guy I emailed said this might be sending something that's screwing up the new st.c driver.  If this is causing an error to occur (REQUEST SENSE, ASC/ASCQ kind of error), the driver won't know about it until the next I/O is done.  At that point, the driver will block waiting for someone to read the additional error codes, thus causing the EBUSY.  I know EBUSY should never happen on a write(2), and he agrees.  I need to do more troubleshooting, and disabling this ioctl command is the first step.

I would guess this is a call to isatty() from within stdio.

BTW: the correct error code for a non-tty fd would be ENOTTY.

Jörg

-- 
 EMail:[email protected] (home) Jörg Schilling D-13353 Berlin
       [email protected]                (uni)  
       [email protected]     (work) Blog: http://schily.blogspot.com/
 URL:  http://cdrecord.berlios.de/old/private/ ftp://ftp.berlios.de/pub/schily