retval = scsi_std_inquiry(dev_scsi, path);
        if (retval)
-           return retval;
+               return retval;
 
        set_str(vendor_str, dev_scsi->vendor, sizeof(vendor_str));
        set_str(model_str, dev_scsi->model, sizeof(model_str));
 
                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;
        }
 
        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);