+static int set_sysfs_values(struct sysfs_device *dev_scsi)
+{
+ const char *vendor, *model, *type;
+
+ vendor = sysfs_attr_get_value(dev_scsi->devpath, "vendor");
+ if (!vendor) {
+ info("%s: cannot get vendor attribute", dev_scsi->devpath);
+ return -1;
+ }
+ set_str(vendor_str, vendor, sizeof(vendor_str)-1);
+
+ model = sysfs_attr_get_value(dev_scsi->devpath, "model");
+ if (!model) {
+ info("%s: cannot get model attribute\n", dev_scsi->devpath);
+ return -1;
+ }
+ set_str(model_str, model, sizeof(model_str)-1);
+
+ type = sysfs_attr_get_value(dev_scsi->devpath, "type");
+ if (!type) {
+ info("%s: cannot get type attribute", dev_scsi->devpath);
+ return -1;
+ }
+ set_type(type_str, type, sizeof(type_str));
+
+ type = sysfs_attr_get_value(dev_scsi->devpath, "rev");
+ if (!type) {
+ info("%s: cannot get type attribute\n", dev_scsi->devpath);
+ return -1;
+ }
+ set_str(revision_str, type, sizeof(revision_str)-1);
+
+ return 0;
+}
+
+static int set_inq_values(struct sysfs_device *dev_scsi, const char *path)
+{
+ int retval;
+ char vendor[8], model[16], type[4], rev[4];
+
+ retval = scsi_std_inquiry(dev_scsi, path, vendor, model, rev, type);
+ if (retval)
+ return retval;
+
+ set_str(vendor_str, vendor, 8);
+ set_str(model_str, model, 16);
+ set_type(type_str, type, sizeof(type_str) - 1);
+ set_str(revision_str, rev, sizeof(revision_str) -1);
+
+ return 0;
+}
+