diff options
Diffstat (limited to 'fdisk/disksize.c')
-rw-r--r-- | fdisk/disksize.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fdisk/disksize.c b/fdisk/disksize.c index f5687d266..28b8df0a5 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; |