chiark / gitweb /
release 126
[elogind.git] / extras / scsi_id / scsi_serial.c
index 8f160306bd56529fa7f08bad7e7c2a55abeb1ece..104db3d95ff1ec95ffc10012f5b3649c3bfd6795 100644 (file)
 /* #include <linux/bsg.h> */
 #include "bsg.h"
 
-#include "../../udev.h"
+#include "../../udev/udev.h"
 #include "scsi.h"
 #include "scsi_id.h"
-#include "scsi_id_version.h"
 
 /*
  * A priority based list of id, naa, and binary/ascii for the identifier
@@ -351,13 +350,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;
        }
 
@@ -806,6 +805,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);