+void sysfs_init(struct mdinfo *mdi, int fd, int devnum)
+{
+ if (fd >= 0) {
+ struct stat stb;
+ mdu_version_t vers;
+ if (fstat(fd, &stb))
+ return;
+ if (ioctl(fd, RAID_VERSION, &vers) != 0)
+ return;
+ if (major(stb.st_rdev)==9)
+ sprintf(mdi->sys_name, "md%d", (int)minor(stb.st_rdev));
+ else
+ sprintf(mdi->sys_name, "md_d%d",
+ (int)minor(stb.st_rdev)>>MdpMinorShift);
+ } else {
+ if (devnum >= 0)
+ sprintf(mdi->sys_name, "md%d", devnum);
+ else
+ sprintf(mdi->sys_name, "md_d%d",
+ -1-devnum);
+ }
+}
+