- if (0 == do_inq(fd, 0, 0, 0, buff, 36, 1)) {
+ if(conf->with_sysfs) {
+ /* sysfs style */
+ basename(mypath->sg_dev, basedev);
+
+ sprintf(attr_path, "%s/block/%s/device/vendor",
+ conf->sysfs_path, basedev);
+ if (0 > sysfs_read_attribute_value(attr_path,
+ mypath->vendor_id, 8)) return 0;
+
+ sprintf(attr_path, "%s/block/%s/device/model",
+ conf->sysfs_path, basedev);
+ if (0 > sysfs_read_attribute_value(attr_path,
+ mypath->product_id, 16)) return 0;
+
+ sprintf(attr_path, "%s/block/%s/device/rev",
+ conf->sysfs_path, basedev);
+ if (0 > sysfs_read_attribute_value(attr_path,
+ mypath->rev, 4)) return 0;
+ } else {
+ /* ioctl style */
+ if ((fd = open(mypath->sg_dev, O_RDONLY)) < 0)
+ return 0;
+ if (0 != do_inq(fd, 0, 0, 0, buff, 36, 1))
+ return 0;