]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - Create.c
Central calls to ioctl BLKGETSIZE
[thirdparty/mdadm.git] / Create.c
index cd4356ccd587197df2657b84ae22c5530c1b11c3..2a30ace7e0acd54eea67bb22946d4ae96611423b 100644 (file)
--- a/Create.c
+++ b/Create.c
@@ -180,7 +180,6 @@ int Create(struct supertype *st, char *mddev, int mdfd,
        dnum = 0;
        for (dv=devlist; dv; dv=dv->next, dnum++) {
                char *dname = dv->devname;
-               unsigned long dsize;
                unsigned long long ldsize, freesize;
                int fd;
                if (strcasecmp(dname, "missing")==0) {
@@ -199,22 +198,11 @@ int Create(struct supertype *st, char *mddev, int mdfd,
                        fail=1;
                        continue;
                }
-#ifdef BLKGETSIZE64
-               if (ioctl(fd, BLKGETSIZE64, &ldsize)==0)
-                       ;
-               else
-#endif
-               if (ioctl(fd, BLKGETSIZE, &dsize)) {
-                       fprintf(stderr, Name ": Cannot get size of %s: %s\n",
-                               dname, strerror(errno));
+               if (!get_dev_size(fd, dname, &ldsize)) {
                        fail = 1;
                        close(fd);
                        continue;
                }
-               else {
-                       ldsize = dsize;
-                       ldsize <<= 9;
-               }
                if (st == NULL) {
                        struct createinfo *ci = conf_get_create_info();
                        if (ci)