diff options
author | Dan Williams <dan.j.williams@intel.com> | 2008-06-13 17:27:30 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2008-06-13 17:27:30 -0700 |
commit | 90c8b707149a069a934bd0e2a0824edf1f6dfdf0 (patch) | |
tree | cbf55fdeb882dd7282166ddf438e329e8893cc70 /super-intel.c | |
parent | c42ec1ed43a811ad866be58f8f7fa460e22a3109 (diff) | |
download | mdadm-90c8b707149a069a934bd0e2a0824edf1f6dfdf0.tar.gz mdadm-90c8b707149a069a934bd0e2a0824edf1f6dfdf0.tar.xz mdadm-90c8b707149a069a934bd0e2a0824edf1f6dfdf0.zip |
sysfs: provide a helper function for locating scsi_generic interfaces
imsm records and validates this data in its metadata
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'super-intel.c')
-rw-r--r-- | super-intel.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/super-intel.c b/super-intel.c index 2da4514..4052aa6 100644 --- a/super-intel.c +++ b/super-intel.c @@ -544,26 +544,19 @@ static int imsm_read_serial(int fd, char *devname, __u8 serial[MAX_RAID_SERIAL_LEN]) { unsigned char scsi_serial[255]; - struct stat stb; int sg_fd; - int minor; - char sg_path[20]; int rv; int rsp_len; int i, cnt; memset(scsi_serial, 0, sizeof(scsi_serial)); - fstat(fd, &stb); - minor = minor(stb.st_rdev); - minor /= 16; - sprintf(sg_path, "/dev/sg%d", minor); - sg_fd = open(sg_path, O_RDONLY); + sg_fd = sysfs_disk_to_sg(fd); if (sg_fd < 0) { if (devname) fprintf(stderr, - Name ": Failed to open %s for %s: %s\n", - sg_path, devname, strerror(errno)); + Name ": Failed to open sg interface for %s: %s\n", + devname, strerror(errno)); return 1; } |