summaryrefslogtreecommitdiff
path: root/fdisk/disksize.c
diff options
context:
space:
mode:
authorKarel Zak <kzak@redhat.com>2006-12-07 00:26:54 +0100
committerKarel Zak <kzak@redhat.com>2006-12-07 00:26:54 +0100
commit48d7b13a1eab85fab91c8d6c5ddf298f733c74f5 (patch)
tree8813d36590ee3361bd75f57a12fd2032e9296ddb /fdisk/disksize.c
parent2ab8f9d3cec110ce8291f2525fe90239aeef8376 (diff)
downloadutil-linux-old-48d7b13a1eab85fab91c8d6c5ddf298f733c74f5.tar.gz
Imported from util-linux-2.13-pre1 tarball.
Diffstat (limited to 'fdisk/disksize.c')
-rw-r--r--fdisk/disksize.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/fdisk/disksize.c b/fdisk/disksize.c
index f5687d26..28b8df0a 100644
--- a/fdisk/disksize.c
+++ b/fdisk/disksize.c
@@ -1,3 +1,4 @@
+#include <errno.h>
#include "common.h"
int disksize(int fd, unsigned long long *sectors) {
@@ -6,8 +7,11 @@ int disksize(int fd, unsigned long long *sectors) {
long long b;
err = ioctl(fd, BLKGETSIZE, &sz);
- if (err)
- return err;
+ if (err) {
+ sz = 0;
+ if (errno != EFBIG)
+ return err;
+ }
err = ioctl(fd, BLKGETSIZE64, &b);
if (err || b == 0 || b == sz)
*sectors = sz;