X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=changer-src%2Fscsi-bsd.c;fp=changer-src%2Fscsi-bsd.c;h=bd010667520414e007f6e1216eea7865ea2d3d26;hb=1194fb66aa28d9929c3f2bef3cc6c1c3f40a60a4;hp=a152b2411f344ba15e82d3794ea80d0658090996;hpb=2df780bff19c457b0debb7adc29972a0bc2a5dc2;p=debian%2Famanda diff --git a/changer-src/scsi-bsd.c b/changer-src/scsi-bsd.c index a152b24..bd01066 100644 --- a/changer-src/scsi-bsd.c +++ b/changer-src/scsi-bsd.c @@ -24,7 +24,7 @@ * file named AUTHORS, in the root directory of this distribution. */ /* - * $Id: scsi-bsd.c,v 1.1.2.10.4.2.2.4 2003/06/05 20:44:23 martinea Exp $ + * $Id: scsi-bsd.c,v 1.17 2005/10/15 13:20:47 martinea Exp $ * * Interface to execute SCSI commands on an BSD System (FreeBSD) * @@ -61,7 +61,7 @@ void SCSI_OS_Version() { #ifndef lint - static char rcsid[] = "$Id: scsi-bsd.c,v 1.1.2.10.4.2.2.4 2003/06/05 20:44:23 martinea Exp $"; + static char rcsid[] = "$Id: scsi-bsd.c,v 1.17 2005/10/15 13:20:47 martinea Exp $"; DebugPrint(DEBUG_INFO, SECTION_INFO, "scsi-os-layer: %s\n",rcsid); #endif } @@ -75,7 +75,6 @@ void SCSI_OS_Version() * Return: * 0 -> device not opened * 1 -> sucess , device open - * -1 -> fatal error */ int SCSI_OpenDevice(int ip) { @@ -93,7 +92,7 @@ int SCSI_OpenDevice(int ip) pDev[ip].SCSI = 0; /* This will only be set if the inquiry works */ pDev[ip].inquiry = (SCSIInquiry_T *)malloc(INQUIRY_SIZE); - if (( pDev[ip].fd = open(pDev[ip].dev, O_RDWR)) > 0) /* We need the device in read/write mode */ + if (( pDev[ip].fd = open(pDev[ip].dev, O_RDWR)) >= 0) /* We need the device in read/write mode */ { pDev[ip].devopen = 1; /* The device is open for use */ pDev[ip].avail = 1; /* And it is available, it could be opened */ @@ -137,7 +136,7 @@ int SCSI_OpenDevice(int ip) } /* open() */ return(0); /* Open failed .... */ } else { /* pDev[ip].inqdone */ /* OK this is the way we go if the device */ - if (( pDev[ip].fd = open(pDev[ip].dev, O_RDWR)) > 0) /* was opened successfull before */ + if (( pDev[ip].fd = open(pDev[ip].dev, O_RDWR)) >= 0) /* was opened successfull before */ { pDev[ip].devopen = 1; return(1); @@ -217,9 +216,8 @@ int SCSI_ExecuteCommand(int DeviceFD, while (--retries > 0) { if (pDev[DeviceFD].devopen == 0) - { - SCSI_OpenDevice(DeviceFD); - } + if (SCSI_OpenDevice(DeviceFD) == 0) + return(SCSI_ERROR); Result = ioctl(pDev[DeviceFD].fd, SCIOCCOMMAND, &ds); SCSI_CloseDevice(DeviceFD); @@ -258,9 +256,8 @@ int Tape_Ioctl( int DeviceFD, int command) int ret = 0; if (pDev[DeviceFD].devopen == 0) - { - SCSI_OpenDevice(DeviceFD); - } + if (SCSI_OpenDevice(DeviceFD) == 0) + return(-1); switch (command) {