diff options
author | Karel Zak <kzak@redhat.com> | 2007-11-07 19:05:31 +0100 |
---|---|---|
committer | Karel Zak <kzak@redhat.com> | 2007-11-07 19:05:31 +0100 |
commit | 810f986b42ff7ecc805d134ef32013c3343df31e (patch) | |
tree | a3bed44c8f415166ea2d75dbb202793762f1ae43 /fdisk/disksize.c | |
parent | b7188e932e86137cacdf1ac74847d100b561c302 (diff) | |
download | util-linux-old-810f986b42ff7ecc805d134ef32013c3343df31e.tar.gz |
fdisk: cleanup BLK* ioctls usage
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'fdisk/disksize.c')
-rw-r--r-- | fdisk/disksize.c | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/fdisk/disksize.c b/fdisk/disksize.c deleted file mode 100644 index cc00e933..00000000 --- a/fdisk/disksize.c +++ /dev/null @@ -1,54 +0,0 @@ -#include <stdio.h> -#include <ctype.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <unistd.h> -#include <errno.h> -#include "common.h" - -int disksize(int fd, unsigned long long *sectors) { - int err; - long sz; - long long b; - - err = ioctl(fd, BLKGETSIZE, &sz); - if (err) { - sz = 0; - if (errno != EFBIG) - return err; - } - err = ioctl(fd, BLKGETSIZE64, &b); - if (err || b == 0 || b == sz) - *sectors = sz; - else - *sectors = (b >> 9); - return 0; -} - -int -is_probably_full_disk(char *name) { -#ifdef HDIO_GETGEO - struct hd_geometry geometry; - int fd, i = 0; - - fd = open(name, O_RDONLY); - if (fd >= 0) { - i = ioctl(fd, HDIO_GETGEO, &geometry); - close(fd); - } - if (i==0) - return (fd >= 0 && geometry.start == 0); -#endif - /* - * The "silly heuristic" is still sexy for us, because - * for example Xen doesn't implement HDIO_GETGEO for virtual - * block devices (/dev/xvda). - * - * -- kzak@redhat.com (23-Feb-2006) - */ - while (*name) - name++; - return !isdigit(name[-1]); -} - |