diff options
author | Neil Brown <neilb@suse.de> | 2006-12-14 17:32:57 +1100 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2006-12-14 17:32:57 +1100 |
commit | beae1dfe2e5a3f11e6e52a93fbf617d644708415 (patch) | |
tree | ca12b130f76d63e7156e43ac89d76c11b2c140b8 /Create.c | |
parent | ab5303d695eb7249b9462f9ad4e973711622a9c5 (diff) |
Central calls to ioctl BLKGETSIZE
Instead of opencoding the same thing everywhere.
Diffstat (limited to 'Create.c')
-rw-r--r-- | Create.c | 14 |
1 files changed, 1 insertions, 13 deletions
@@ -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) |