[PATCH] Fix partitions bigger than 2TB
Dinar Valeev
k0da at opensuse.org
Sat May 4 06:16:24 EST 2013
Partitions which are bigger than 2TB doesn't fit unsigned long,
change it ot unsigned long long.
---
include/partition.h | 4 ++--
second/file.c | 2 +-
second/partition.c | 4 ++--
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/include/partition.h b/include/partition.h
index 23c99ba..c9c4d0b 100644
--- a/include/partition.h
+++ b/include/partition.h
@@ -37,8 +37,8 @@ struct partition_t {
int part_number;
char part_type[MAX_PART_NAME];
char part_name[MAX_PART_NAME];
- unsigned long part_start; /* In blocks */
- unsigned long part_size; /* In blocks */
+ unsigned long long part_start; /* In blocks */
+ unsigned long long part_size; /* In blocks */
unsigned short blocksize;
int sys_ind; /* fs type */
};
diff --git a/second/file.c b/second/file.c
index fd081a3..a276a72 100644
--- a/second/file.c
+++ b/second/file.c
@@ -582,7 +582,7 @@ file_block_open( struct boot_file_t* file,
prom_printf("no partitions found.\n");
#endif
for (p = parts; p && !found; p=p->next) {
- DEBUG_F("number: %02d, start: 0x%08lx, length: 0x%08lx\n",
+ DEBUG_F("number: %02d, start: 0x%08Lx, length: 0x%08Lx\n",
p->part_number, p->part_start, p->part_size );
if (partition == -1) {
file->fs = fs_open( file, p, fspec );
diff --git a/second/partition.c b/second/partition.c
index f5be637..6f94722 100644
--- a/second/partition.c
+++ b/second/partition.c
@@ -68,7 +68,7 @@ static unsigned char block_buffer[MAX_BLOCK_SIZE];
static void
add_new_partition(struct partition_t** list, int part_number,
const char *part_type,
- const char *part_name, unsigned long part_start, unsigned
long part_size,
+ const char *part_name, unsigned long long part_start,
unsigned long long part_size,
unsigned short part_blocksize, int sys_ind)
{
struct partition_t* part;
@@ -452,7 +452,7 @@ get_part_type(char *device, int partition)
return '\0';
for (p = parts; p && !found; p=p->next) {
- DEBUG_F("number: %02d, start: 0x%08lx, length: 0x%08lx, type:
%s, name: %s\n",
+ DEBUG_F("number: %02d, start: 0x%08Lx, length: 0x%08Lx, type:
%s, name: %s\n",
p->part_number, p->part_start, p->part_size, p->part_type,
p->part_name);
if ((partition >= 0) && (partition == p->part_number)) {
type = strdup(p->part_type);
--
1.8.1.4
More information about the Yaboot-devel
mailing list