X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=extras%2Fscsi_id%2Fscsi_serial.c;h=016075c3ea60156ad1a8dc090aabbaa2156a47a0;hb=05364975aff0bfaca1b5fb23963cee7d2201f99a;hp=7f756954e20e68fa142cc06f65cc7c92fd2922f1;hpb=24dabba541060c85d69f4a59f05523f545018f57;p=elogind.git diff --git a/extras/scsi_id/scsi_serial.c b/extras/scsi_id/scsi_serial.c index 7f756954e..016075c3e 100644 --- a/extras/scsi_id/scsi_serial.c +++ b/extras/scsi_id/scsi_serial.c @@ -15,6 +15,7 @@ #include #include +#include #include #include #include @@ -350,13 +351,13 @@ resend: io_buf = (void *)&io_hdr; } - if (ioctl(fd, SG_IO, io_buf) < 0) { + retval = ioctl(fd, SG_IO, io_buf); + if (retval < 0) { if ((errno == EINVAL || errno == ENOSYS) && dev_scsi->use_sg == 4) { dev_scsi->use_sg = 3; goto resend; } info("%s: ioctl failed: %s\n", dev_scsi->kernel, strerror(errno)); - retval = -1; goto error; } @@ -805,6 +806,7 @@ int scsi_std_inquiry(struct scsi_id_device *dev_scsi, const char *devname) if (err < 0) goto out; + err = 0; memcpy(dev_scsi->vendor, buf + 8, 8); dev_scsi->vendor[8] = '\0'; memcpy(dev_scsi->model, buf + 16, 16);