diff options
author | Neil Brown <neilb@suse.de> | 2008-05-15 16:48:21 +1000 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2008-05-15 16:48:21 +1000 |
commit | 2f6079dc96180335fdb56d0b89e462e903abbb50 (patch) | |
tree | c643ba942b6a7a2ccb100e3707eed3d139b5253d /util.c | |
parent | 598f0d58ac3544e25f90f2d34337e15764f4d877 (diff) |
Create a container member
From: Neil Brown <neilb@suse.de>
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -978,6 +978,29 @@ int open_container(int fd) return -1; } +char *devnum2devname(int num) +{ + char name[100]; + if (num > 0) + sprintf(name, "md%d", num); + else + sprintf(name, "md_d%d", -1-num); + return strdup(name); +} + +int fd2devnum(int fd) +{ + struct stat stb; + if (fstat(fd, &stb) == 0 && + (S_IFMT&stb.st_mode)==S_IFBLK) { + if (major(stb.st_rdev) == MD_MAJOR) + return minor(stb.st_rdev); + else + return -1- (minor(stb.st_rdev)>>6); + } + return -1; +} + #ifdef __TINYC__ /* tinyc doesn't optimize this check in ioctl.h out ... */ unsigned int __invalid_size_argument_for_IOC = 0; |