aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--util-linux/Config.in8
-rw-r--r--util-linux/fdisk.c18
2 files changed, 18 insertions, 8 deletions
diff --git a/util-linux/Config.in b/util-linux/Config.in
index 5b8ed1f0b..6972591cc 100644
--- a/util-linux/Config.in
+++ b/util-linux/Config.in
@@ -74,6 +74,14 @@ config CONFIG_FDISK
can be used to list and edit the set of partitions or BSD style
'disk slices' that are defined on a hard drive.
+config FDISK_SUPPORT_LARGE_DISKS
+ bool " support over 4GB disks"
+ default y
+ depends on CONFIG_FDISK
+ select CONFIG_LFS
+ help
+ Enable this option to support large disks > 4GB.
+
config CONFIG_FEATURE_FDISK_WRITABLE
bool " Write support"
default y
diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c
index a2c03ce79..5e7e79c65 100644
--- a/util-linux/fdisk.c
+++ b/util-linux/fdisk.c
@@ -19,7 +19,9 @@
* to instead really use 64 bit interfaces, at least for
* glibc and uClibc... */
#ifndef __USE_FILE_OFFSET64
-# define __USE_FILE_OFFSET64 1
+# ifdef FDISK_SUPPORT_LARGE_DISKS
+# define __USE_FILE_OFFSET64 1
+# endif
#endif
#include <sys/types.h>
@@ -4206,7 +4208,7 @@ read_int(uint low, uint dflt, uint high, uint base, char *mesg)
&& *line_ptr != '-' && *line_ptr != '+')
continue;
- if (*line_ptr == '+' || *line_ptr == '-') {
+ if (*line_ptr == '+' || *line_ptr == '-') {
int minus = (*line_ptr == '-');
int absolute = 0;
@@ -4214,7 +4216,7 @@ read_int(uint low, uint dflt, uint high, uint base, char *mesg)
while (isdigit(*++line_ptr))
use_default = 0;
-
+
switch (*line_ptr) {
case 'c':
case 'C':
@@ -4244,14 +4246,14 @@ read_int(uint low, uint dflt, uint high, uint base, char *mesg)
bytes = (unsigned long long) i * absolute;
unit = sector_size * units_per_sector;
- bytes += unit/2; /* round */
+ bytes += unit/2; /* round */
bytes /= unit;
i = bytes;
}
if (minus)
i = -i;
i += base;
- } else {
+ } else {
i = atoi(line_ptr);
while (isdigit(*line_ptr)) {
line_ptr++;
@@ -4613,7 +4615,7 @@ static void check_consistency(const struct partition *p, int partition) {
/* Ending on cylinder boundary? */
if (peh != (heads - 1) || pes != sectors) {
- printf(_("Partition %i does not end on cylinder boundary.\n"),
+ printf(_("Partition %i does not end on cylinder boundary.\n"),
partition + 1);
#if 0
printf(_(" phys=(%d, %d, %d) "), pec, peh, pes);
@@ -5186,8 +5188,8 @@ new_partition(void) {
free_primary += !ptes[i].part_table->sys_ind;
if (!free_primary && partitions >= MAXIMUM_PARTS) {
- printf(_("The maximum number of partitions has been created\n"));
- return;
+ printf(_("The maximum number of partitions has been created\n"));
+ return;
}
if (!free_primary) {