diff options
Diffstat (limited to 'fs/partitions')
| -rw-r--r-- | fs/partitions/acorn.c | 35 | ||||
| -rw-r--r-- | fs/partitions/amiga.c | 20 | ||||
| -rw-r--r-- | fs/partitions/atari.c | 12 | ||||
| -rw-r--r-- | fs/partitions/check.c | 23 | ||||
| -rw-r--r-- | fs/partitions/check.h | 6 | ||||
| -rw-r--r-- | fs/partitions/efi.c | 2 | ||||
| -rw-r--r-- | fs/partitions/ibm.c | 17 | ||||
| -rw-r--r-- | fs/partitions/karma.c | 2 | ||||
| -rw-r--r-- | fs/partitions/ldm.c | 4 | ||||
| -rw-r--r-- | fs/partitions/mac.c | 4 | ||||
| -rw-r--r-- | fs/partitions/msdos.c | 67 | ||||
| -rw-r--r-- | fs/partitions/osf.c | 2 | ||||
| -rw-r--r-- | fs/partitions/sgi.c | 2 | ||||
| -rw-r--r-- | fs/partitions/sun.c | 2 | ||||
| -rw-r--r-- | fs/partitions/sysv68.c | 9 | ||||
| -rw-r--r-- | fs/partitions/ultrix.c | 2 |
16 files changed, 136 insertions, 73 deletions
diff --git a/fs/partitions/acorn.c b/fs/partitions/acorn.c index 6921e7890be6..fbeb697374d5 100644 --- a/fs/partitions/acorn.c +++ b/fs/partitions/acorn.c | |||
| @@ -45,8 +45,11 @@ adfs_partition(struct parsed_partitions *state, char *name, char *data, | |||
| 45 | nr_sects = (le32_to_cpu(dr->disc_size_high) << 23) | | 45 | nr_sects = (le32_to_cpu(dr->disc_size_high) << 23) | |
| 46 | (le32_to_cpu(dr->disc_size) >> 9); | 46 | (le32_to_cpu(dr->disc_size) >> 9); |
| 47 | 47 | ||
| 48 | if (name) | 48 | if (name) { |
| 49 | printk(" [%s]", name); | 49 | strlcat(state->pp_buf, " [", PAGE_SIZE); |
| 50 | strlcat(state->pp_buf, name, PAGE_SIZE); | ||
| 51 | strlcat(state->pp_buf, "]", PAGE_SIZE); | ||
| 52 | } | ||
| 50 | put_partition(state, slot, first_sector, nr_sects); | 53 | put_partition(state, slot, first_sector, nr_sects); |
| 51 | return dr; | 54 | return dr; |
| 52 | } | 55 | } |
| @@ -81,14 +84,14 @@ static int riscix_partition(struct parsed_partitions *state, | |||
| 81 | if (!rr) | 84 | if (!rr) |
| 82 | return -1; | 85 | return -1; |
| 83 | 86 | ||
| 84 | printk(" [RISCiX]"); | 87 | strlcat(state->pp_buf, " [RISCiX]", PAGE_SIZE); |
| 85 | 88 | ||
| 86 | 89 | ||
| 87 | if (rr->magic == RISCIX_MAGIC) { | 90 | if (rr->magic == RISCIX_MAGIC) { |
| 88 | unsigned long size = nr_sects > 2 ? 2 : nr_sects; | 91 | unsigned long size = nr_sects > 2 ? 2 : nr_sects; |
| 89 | int part; | 92 | int part; |
| 90 | 93 | ||
| 91 | printk(" <"); | 94 | strlcat(state->pp_buf, " <", PAGE_SIZE); |
| 92 | 95 | ||
| 93 | put_partition(state, slot++, first_sect, size); | 96 | put_partition(state, slot++, first_sect, size); |
| 94 | for (part = 0; part < 8; part++) { | 97 | for (part = 0; part < 8; part++) { |
| @@ -97,11 +100,13 @@ static int riscix_partition(struct parsed_partitions *state, | |||
| 97 | put_partition(state, slot++, | 100 | put_partition(state, slot++, |
| 98 | le32_to_cpu(rr->part[part].start), | 101 | le32_to_cpu(rr->part[part].start), |
| 99 | le32_to_cpu(rr->part[part].length)); | 102 | le32_to_cpu(rr->part[part].length)); |
| 100 | printk("(%s)", rr->part[part].name); | 103 | strlcat(state->pp_buf, "(", PAGE_SIZE); |
| 104 | strlcat(state->pp_buf, rr->part[part].name, PAGE_SIZE); | ||
| 105 | strlcat(state->pp_buf, ")", PAGE_SIZE); | ||
| 101 | } | 106 | } |
| 102 | } | 107 | } |
| 103 | 108 | ||
| 104 | printk(" >\n"); | 109 | strlcat(state->pp_buf, " >\n", PAGE_SIZE); |
| 105 | } else { | 110 | } else { |
| 106 | put_partition(state, slot++, first_sect, nr_sects); | 111 | put_partition(state, slot++, first_sect, nr_sects); |
| 107 | } | 112 | } |
| @@ -131,7 +136,7 @@ static int linux_partition(struct parsed_partitions *state, | |||
| 131 | struct linux_part *linuxp; | 136 | struct linux_part *linuxp; |
| 132 | unsigned long size = nr_sects > 2 ? 2 : nr_sects; | 137 | unsigned long size = nr_sects > 2 ? 2 : nr_sects; |
| 133 | 138 | ||
| 134 | printk(" [Linux]"); | 139 | strlcat(state->pp_buf, " [Linux]", PAGE_SIZE); |
| 135 | 140 | ||
| 136 | put_partition(state, slot++, first_sect, size); | 141 | put_partition(state, slot++, first_sect, size); |
| 137 | 142 | ||
| @@ -139,7 +144,7 @@ static int linux_partition(struct parsed_partitions *state, | |||
| 139 | if (!linuxp) | 144 | if (!linuxp) |
| 140 | return -1; | 145 | return -1; |
| 141 | 146 | ||
| 142 | printk(" <"); | 147 | strlcat(state->pp_buf, " <", PAGE_SIZE); |
| 143 | while (linuxp->magic == cpu_to_le32(LINUX_NATIVE_MAGIC) || | 148 | while (linuxp->magic == cpu_to_le32(LINUX_NATIVE_MAGIC) || |
| 144 | linuxp->magic == cpu_to_le32(LINUX_SWAP_MAGIC)) { | 149 | linuxp->magic == cpu_to_le32(LINUX_SWAP_MAGIC)) { |
| 145 | if (slot == state->limit) | 150 | if (slot == state->limit) |
| @@ -149,7 +154,7 @@ static int linux_partition(struct parsed_partitions *state, | |||
| 149 | le32_to_cpu(linuxp->nr_sects)); | 154 | le32_to_cpu(linuxp->nr_sects)); |
| 150 | linuxp ++; | 155 | linuxp ++; |
| 151 | } | 156 | } |
| 152 | printk(" >"); | 157 | strlcat(state->pp_buf, " >", PAGE_SIZE); |
| 153 | 158 | ||
| 154 | put_dev_sector(sect); | 159 | put_dev_sector(sect); |
| 155 | return slot; | 160 | return slot; |
| @@ -294,7 +299,7 @@ int adfspart_check_ADFS(struct parsed_partitions *state) | |||
| 294 | break; | 299 | break; |
| 295 | } | 300 | } |
| 296 | } | 301 | } |
| 297 | printk("\n"); | 302 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 298 | return 1; | 303 | return 1; |
| 299 | } | 304 | } |
| 300 | #endif | 305 | #endif |
| @@ -367,7 +372,7 @@ int adfspart_check_ICS(struct parsed_partitions *state) | |||
| 367 | return 0; | 372 | return 0; |
| 368 | } | 373 | } |
| 369 | 374 | ||
| 370 | printk(" [ICS]"); | 375 | strlcat(state->pp_buf, " [ICS]", PAGE_SIZE); |
| 371 | 376 | ||
| 372 | for (slot = 1, p = (const struct ics_part *)data; p->size; p++) { | 377 | for (slot = 1, p = (const struct ics_part *)data; p->size; p++) { |
| 373 | u32 start = le32_to_cpu(p->start); | 378 | u32 start = le32_to_cpu(p->start); |
| @@ -401,7 +406,7 @@ int adfspart_check_ICS(struct parsed_partitions *state) | |||
| 401 | } | 406 | } |
| 402 | 407 | ||
| 403 | put_dev_sector(sect); | 408 | put_dev_sector(sect); |
| 404 | printk("\n"); | 409 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 405 | return 1; | 410 | return 1; |
| 406 | } | 411 | } |
| 407 | #endif | 412 | #endif |
| @@ -461,7 +466,7 @@ int adfspart_check_POWERTEC(struct parsed_partitions *state) | |||
| 461 | return 0; | 466 | return 0; |
| 462 | } | 467 | } |
| 463 | 468 | ||
| 464 | printk(" [POWERTEC]"); | 469 | strlcat(state->pp_buf, " [POWERTEC]", PAGE_SIZE); |
| 465 | 470 | ||
| 466 | for (i = 0, p = (const struct ptec_part *)data; i < 12; i++, p++) { | 471 | for (i = 0, p = (const struct ptec_part *)data; i < 12; i++, p++) { |
| 467 | u32 start = le32_to_cpu(p->start); | 472 | u32 start = le32_to_cpu(p->start); |
| @@ -472,7 +477,7 @@ int adfspart_check_POWERTEC(struct parsed_partitions *state) | |||
| 472 | } | 477 | } |
| 473 | 478 | ||
| 474 | put_dev_sector(sect); | 479 | put_dev_sector(sect); |
| 475 | printk("\n"); | 480 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 476 | return 1; | 481 | return 1; |
| 477 | } | 482 | } |
| 478 | #endif | 483 | #endif |
| @@ -543,7 +548,7 @@ int adfspart_check_EESOX(struct parsed_partitions *state) | |||
| 543 | 548 | ||
| 544 | size = get_capacity(state->bdev->bd_disk); | 549 | size = get_capacity(state->bdev->bd_disk); |
| 545 | put_partition(state, slot++, start, size - start); | 550 | put_partition(state, slot++, start, size - start); |
| 546 | printk("\n"); | 551 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 547 | } | 552 | } |
| 548 | 553 | ||
| 549 | return i ? 1 : 0; | 554 | return i ? 1 : 0; |
diff --git a/fs/partitions/amiga.c b/fs/partitions/amiga.c index ba443d4229f8..70cbf44a1560 100644 --- a/fs/partitions/amiga.c +++ b/fs/partitions/amiga.c | |||
| @@ -69,7 +69,13 @@ int amiga_partition(struct parsed_partitions *state) | |||
| 69 | /* blksize is blocks per 512 byte standard block */ | 69 | /* blksize is blocks per 512 byte standard block */ |
| 70 | blksize = be32_to_cpu( rdb->rdb_BlockBytes ) / 512; | 70 | blksize = be32_to_cpu( rdb->rdb_BlockBytes ) / 512; |
| 71 | 71 | ||
| 72 | printk(" RDSK (%d)", blksize * 512); /* Be more informative */ | 72 | { |
| 73 | char tmp[7 + 10 + 1 + 1]; | ||
| 74 | |||
| 75 | /* Be more informative */ | ||
| 76 | snprintf(tmp, sizeof(tmp), " RDSK (%d)", blksize * 512); | ||
| 77 | strlcat(state->pp_buf, tmp, PAGE_SIZE); | ||
| 78 | } | ||
| 73 | blk = be32_to_cpu(rdb->rdb_PartitionList); | 79 | blk = be32_to_cpu(rdb->rdb_PartitionList); |
| 74 | put_dev_sector(sect); | 80 | put_dev_sector(sect); |
| 75 | for (part = 1; blk>0 && part<=16; part++, put_dev_sector(sect)) { | 81 | for (part = 1; blk>0 && part<=16; part++, put_dev_sector(sect)) { |
| @@ -106,23 +112,27 @@ int amiga_partition(struct parsed_partitions *state) | |||
| 106 | { | 112 | { |
| 107 | /* Be even more informative to aid mounting */ | 113 | /* Be even more informative to aid mounting */ |
| 108 | char dostype[4]; | 114 | char dostype[4]; |
| 115 | char tmp[42]; | ||
| 116 | |||
| 109 | __be32 *dt = (__be32 *)dostype; | 117 | __be32 *dt = (__be32 *)dostype; |
| 110 | *dt = pb->pb_Environment[16]; | 118 | *dt = pb->pb_Environment[16]; |
| 111 | if (dostype[3] < ' ') | 119 | if (dostype[3] < ' ') |
| 112 | printk(" (%c%c%c^%c)", | 120 | snprintf(tmp, sizeof(tmp), " (%c%c%c^%c)", |
| 113 | dostype[0], dostype[1], | 121 | dostype[0], dostype[1], |
| 114 | dostype[2], dostype[3] + '@' ); | 122 | dostype[2], dostype[3] + '@' ); |
| 115 | else | 123 | else |
| 116 | printk(" (%c%c%c%c)", | 124 | snprintf(tmp, sizeof(tmp), " (%c%c%c%c)", |
| 117 | dostype[0], dostype[1], | 125 | dostype[0], dostype[1], |
| 118 | dostype[2], dostype[3]); | 126 | dostype[2], dostype[3]); |
| 119 | printk("(res %d spb %d)", | 127 | strlcat(state->pp_buf, tmp, PAGE_SIZE); |
| 128 | snprintf(tmp, sizeof(tmp), "(res %d spb %d)", | ||
| 120 | be32_to_cpu(pb->pb_Environment[6]), | 129 | be32_to_cpu(pb->pb_Environment[6]), |
| 121 | be32_to_cpu(pb->pb_Environment[4])); | 130 | be32_to_cpu(pb->pb_Environment[4])); |
| 131 | strlcat(state->pp_buf, tmp, PAGE_SIZE); | ||
| 122 | } | 132 | } |
| 123 | res = 1; | 133 | res = 1; |
| 124 | } | 134 | } |
| 125 | printk("\n"); | 135 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 126 | 136 | ||
| 127 | rdb_done: | 137 | rdb_done: |
| 128 | return res; | 138 | return res; |
diff --git a/fs/partitions/atari.c b/fs/partitions/atari.c index 4439ff1b6cec..9875b05e80a2 100644 --- a/fs/partitions/atari.c +++ b/fs/partitions/atari.c | |||
| @@ -62,7 +62,7 @@ int atari_partition(struct parsed_partitions *state) | |||
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | pi = &rs->part[0]; | 64 | pi = &rs->part[0]; |
| 65 | printk (" AHDI"); | 65 | strlcat(state->pp_buf, " AHDI", PAGE_SIZE); |
| 66 | for (slot = 1; pi < &rs->part[4] && slot < state->limit; slot++, pi++) { | 66 | for (slot = 1; pi < &rs->part[4] && slot < state->limit; slot++, pi++) { |
| 67 | struct rootsector *xrs; | 67 | struct rootsector *xrs; |
| 68 | Sector sect2; | 68 | Sector sect2; |
| @@ -81,7 +81,7 @@ int atari_partition(struct parsed_partitions *state) | |||
| 81 | #ifdef ICD_PARTS | 81 | #ifdef ICD_PARTS |
| 82 | part_fmt = 1; | 82 | part_fmt = 1; |
| 83 | #endif | 83 | #endif |
| 84 | printk(" XGM<"); | 84 | strlcat(state->pp_buf, " XGM<", PAGE_SIZE); |
| 85 | partsect = extensect = be32_to_cpu(pi->st); | 85 | partsect = extensect = be32_to_cpu(pi->st); |
| 86 | while (1) { | 86 | while (1) { |
| 87 | xrs = read_part_sector(state, partsect, §2); | 87 | xrs = read_part_sector(state, partsect, §2); |
| @@ -120,14 +120,14 @@ int atari_partition(struct parsed_partitions *state) | |||
| 120 | break; | 120 | break; |
| 121 | } | 121 | } |
| 122 | } | 122 | } |
| 123 | printk(" >"); | 123 | strlcat(state->pp_buf, " >", PAGE_SIZE); |
| 124 | } | 124 | } |
| 125 | #ifdef ICD_PARTS | 125 | #ifdef ICD_PARTS |
| 126 | if ( part_fmt!=1 ) { /* no extended partitions -> test ICD-format */ | 126 | if ( part_fmt!=1 ) { /* no extended partitions -> test ICD-format */ |
| 127 | pi = &rs->icdpart[0]; | 127 | pi = &rs->icdpart[0]; |
| 128 | /* sanity check: no ICD format if first partition invalid */ | 128 | /* sanity check: no ICD format if first partition invalid */ |
| 129 | if (OK_id(pi->id)) { | 129 | if (OK_id(pi->id)) { |
| 130 | printk(" ICD<"); | 130 | strlcat(state->pp_buf, " ICD<", PAGE_SIZE); |
| 131 | for (; pi < &rs->icdpart[8] && slot < state->limit; slot++, pi++) { | 131 | for (; pi < &rs->icdpart[8] && slot < state->limit; slot++, pi++) { |
| 132 | /* accept only GEM,BGM,RAW,LNX,SWP partitions */ | 132 | /* accept only GEM,BGM,RAW,LNX,SWP partitions */ |
| 133 | if (!((pi->flg & 1) && OK_id(pi->id))) | 133 | if (!((pi->flg & 1) && OK_id(pi->id))) |
| @@ -137,13 +137,13 @@ int atari_partition(struct parsed_partitions *state) | |||
| 137 | be32_to_cpu(pi->st), | 137 | be32_to_cpu(pi->st), |
| 138 | be32_to_cpu(pi->siz)); | 138 | be32_to_cpu(pi->siz)); |
| 139 | } | 139 | } |
| 140 | printk(" >"); | 140 | strlcat(state->pp_buf, " >", PAGE_SIZE); |
| 141 | } | 141 | } |
| 142 | } | 142 | } |
| 143 | #endif | 143 | #endif |
| 144 | put_dev_sector(sect); | 144 | put_dev_sector(sect); |
| 145 | 145 | ||
| 146 | printk ("\n"); | 146 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 147 | 147 | ||
| 148 | return 1; | 148 | return 1; |
| 149 | } | 149 | } |
diff --git a/fs/partitions/check.c b/fs/partitions/check.c index 5dcd4b0c5533..79fbf3f390f0 100644 --- a/fs/partitions/check.c +++ b/fs/partitions/check.c | |||
| @@ -164,10 +164,16 @@ check_partition(struct gendisk *hd, struct block_device *bdev) | |||
| 164 | state = kzalloc(sizeof(struct parsed_partitions), GFP_KERNEL); | 164 | state = kzalloc(sizeof(struct parsed_partitions), GFP_KERNEL); |
| 165 | if (!state) | 165 | if (!state) |
| 166 | return NULL; | 166 | return NULL; |
| 167 | state->pp_buf = (char *)__get_free_page(GFP_KERNEL); | ||
| 168 | if (!state->pp_buf) { | ||
| 169 | kfree(state); | ||
| 170 | return NULL; | ||
| 171 | } | ||
| 172 | state->pp_buf[0] = '\0'; | ||
| 167 | 173 | ||
| 168 | state->bdev = bdev; | 174 | state->bdev = bdev; |
| 169 | disk_name(hd, 0, state->name); | 175 | disk_name(hd, 0, state->name); |
| 170 | printk(KERN_INFO " %s:", state->name); | 176 | snprintf(state->pp_buf, PAGE_SIZE, " %s:", state->name); |
| 171 | if (isdigit(state->name[strlen(state->name)-1])) | 177 | if (isdigit(state->name[strlen(state->name)-1])) |
| 172 | sprintf(state->name, "p"); | 178 | sprintf(state->name, "p"); |
| 173 | 179 | ||
| @@ -185,17 +191,25 @@ check_partition(struct gendisk *hd, struct block_device *bdev) | |||
| 185 | } | 191 | } |
| 186 | 192 | ||
| 187 | } | 193 | } |
| 188 | if (res > 0) | 194 | if (res > 0) { |
| 195 | printk(KERN_INFO "%s", state->pp_buf); | ||
| 196 | |||
| 197 | free_page((unsigned long)state->pp_buf); | ||
| 189 | return state; | 198 | return state; |
| 199 | } | ||
| 190 | if (state->access_beyond_eod) | 200 | if (state->access_beyond_eod) |
| 191 | err = -ENOSPC; | 201 | err = -ENOSPC; |
| 192 | if (err) | 202 | if (err) |
| 193 | /* The partition is unrecognized. So report I/O errors if there were any */ | 203 | /* The partition is unrecognized. So report I/O errors if there were any */ |
| 194 | res = err; | 204 | res = err; |
| 195 | if (!res) | 205 | if (!res) |
| 196 | printk(" unknown partition table\n"); | 206 | strlcat(state->pp_buf, " unknown partition table\n", PAGE_SIZE); |
| 197 | else if (warn_no_part) | 207 | else if (warn_no_part) |
| 198 | printk(" unable to read partition table\n"); | 208 | strlcat(state->pp_buf, " unable to read partition table\n", PAGE_SIZE); |
| 209 | |||
| 210 | printk(KERN_INFO "%s", state->pp_buf); | ||
| 211 | |||
| 212 | free_page((unsigned long)state->pp_buf); | ||
| 199 | kfree(state); | 213 | kfree(state); |
| 200 | return ERR_PTR(res); | 214 | return ERR_PTR(res); |
| 201 | } | 215 | } |
| @@ -459,7 +473,6 @@ struct hd_struct *add_partition(struct gendisk *disk, int partno, | |||
| 459 | } | 473 | } |
| 460 | 474 | ||
| 461 | /* everything is up and running, commence */ | 475 | /* everything is up and running, commence */ |
| 462 | INIT_RCU_HEAD(&p->rcu_head); | ||
| 463 | rcu_assign_pointer(ptbl->part[partno], p); | 476 | rcu_assign_pointer(ptbl->part[partno], p); |
| 464 | 477 | ||
| 465 | /* suppress uevent if the disk supresses it */ | 478 | /* suppress uevent if the disk supresses it */ |
diff --git a/fs/partitions/check.h b/fs/partitions/check.h index 52f8bd399396..8e4e103ba216 100644 --- a/fs/partitions/check.h +++ b/fs/partitions/check.h | |||
| @@ -16,6 +16,7 @@ struct parsed_partitions { | |||
| 16 | int next; | 16 | int next; |
| 17 | int limit; | 17 | int limit; |
| 18 | bool access_beyond_eod; | 18 | bool access_beyond_eod; |
| 19 | char *pp_buf; | ||
| 19 | }; | 20 | }; |
| 20 | 21 | ||
| 21 | static inline void *read_part_sector(struct parsed_partitions *state, | 22 | static inline void *read_part_sector(struct parsed_partitions *state, |
| @@ -32,9 +33,12 @@ static inline void | |||
| 32 | put_partition(struct parsed_partitions *p, int n, sector_t from, sector_t size) | 33 | put_partition(struct parsed_partitions *p, int n, sector_t from, sector_t size) |
| 33 | { | 34 | { |
| 34 | if (n < p->limit) { | 35 | if (n < p->limit) { |
| 36 | char tmp[1 + BDEVNAME_SIZE + 10 + 1]; | ||
| 37 | |||
| 35 | p->parts[n].from = from; | 38 | p->parts[n].from = from; |
| 36 | p->parts[n].size = size; | 39 | p->parts[n].size = size; |
| 37 | printk(" %s%d", p->name, n); | 40 | snprintf(tmp, sizeof(tmp), " %s%d", p->name, n); |
| 41 | strlcat(p->pp_buf, tmp, PAGE_SIZE); | ||
| 38 | } | 42 | } |
| 39 | } | 43 | } |
| 40 | 44 | ||
diff --git a/fs/partitions/efi.c b/fs/partitions/efi.c index 9efb2cfe2410..dbb44d4bb8a7 100644 --- a/fs/partitions/efi.c +++ b/fs/partitions/efi.c | |||
| @@ -630,6 +630,6 @@ int efi_partition(struct parsed_partitions *state) | |||
| 630 | } | 630 | } |
| 631 | kfree(ptes); | 631 | kfree(ptes); |
| 632 | kfree(gpt); | 632 | kfree(gpt); |
| 633 | printk("\n"); | 633 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 634 | return 1; | 634 | return 1; |
| 635 | } | 635 | } |
diff --git a/fs/partitions/ibm.c b/fs/partitions/ibm.c index fc8497643fd0..d1b8a5c4bc0a 100644 --- a/fs/partitions/ibm.c +++ b/fs/partitions/ibm.c | |||
| @@ -75,6 +75,7 @@ int ibm_partition(struct parsed_partitions *state) | |||
| 75 | unsigned char *data; | 75 | unsigned char *data; |
| 76 | Sector sect; | 76 | Sector sect; |
| 77 | sector_t labelsect; | 77 | sector_t labelsect; |
| 78 | char tmp[64]; | ||
| 78 | 79 | ||
| 79 | res = 0; | 80 | res = 0; |
| 80 | blocksize = bdev_logical_block_size(bdev); | 81 | blocksize = bdev_logical_block_size(bdev); |
| @@ -144,13 +145,15 @@ int ibm_partition(struct parsed_partitions *state) | |||
| 144 | */ | 145 | */ |
| 145 | blocksize = label->cms.block_size; | 146 | blocksize = label->cms.block_size; |
| 146 | if (label->cms.disk_offset != 0) { | 147 | if (label->cms.disk_offset != 0) { |
| 147 | printk("CMS1/%8s(MDSK):", name); | 148 | snprintf(tmp, sizeof(tmp), "CMS1/%8s(MDSK):", name); |
| 149 | strlcat(state->pp_buf, tmp, PAGE_SIZE); | ||
| 148 | /* disk is reserved minidisk */ | 150 | /* disk is reserved minidisk */ |
| 149 | offset = label->cms.disk_offset; | 151 | offset = label->cms.disk_offset; |
| 150 | size = (label->cms.block_count - 1) | 152 | size = (label->cms.block_count - 1) |
| 151 | * (blocksize >> 9); | 153 | * (blocksize >> 9); |
| 152 | } else { | 154 | } else { |
| 153 | printk("CMS1/%8s:", name); | 155 | snprintf(tmp, sizeof(tmp), "CMS1/%8s:", name); |
| 156 | strlcat(state->pp_buf, tmp, PAGE_SIZE); | ||
| 154 | offset = (info->label_block + 1); | 157 | offset = (info->label_block + 1); |
| 155 | size = label->cms.block_count | 158 | size = label->cms.block_count |
| 156 | * (blocksize >> 9); | 159 | * (blocksize >> 9); |
| @@ -159,7 +162,8 @@ int ibm_partition(struct parsed_partitions *state) | |||
| 159 | size-offset*(blocksize >> 9)); | 162 | size-offset*(blocksize >> 9)); |
| 160 | } else { | 163 | } else { |
| 161 | if (strncmp(type, "LNX1", 4) == 0) { | 164 | if (strncmp(type, "LNX1", 4) == 0) { |
| 162 | printk("LNX1/%8s:", name); | 165 | snprintf(tmp, sizeof(tmp), "LNX1/%8s:", name); |
| 166 | strlcat(state->pp_buf, tmp, PAGE_SIZE); | ||
| 163 | if (label->lnx.ldl_version == 0xf2) { | 167 | if (label->lnx.ldl_version == 0xf2) { |
| 164 | fmt_size = label->lnx.formatted_blocks | 168 | fmt_size = label->lnx.formatted_blocks |
| 165 | * (blocksize >> 9); | 169 | * (blocksize >> 9); |
| @@ -178,7 +182,7 @@ int ibm_partition(struct parsed_partitions *state) | |||
| 178 | offset = (info->label_block + 1); | 182 | offset = (info->label_block + 1); |
| 179 | } else { | 183 | } else { |
| 180 | /* unlabeled disk */ | 184 | /* unlabeled disk */ |
| 181 | printk("(nonl)"); | 185 | strlcat(tmp, sizeof(tmp), "(nonl)", PAGE_SIZE); |
| 182 | size = i_size >> 9; | 186 | size = i_size >> 9; |
| 183 | offset = (info->label_block + 1); | 187 | offset = (info->label_block + 1); |
| 184 | } | 188 | } |
| @@ -197,7 +201,8 @@ int ibm_partition(struct parsed_partitions *state) | |||
| 197 | * if not, something is wrong, skipping partition detection | 201 | * if not, something is wrong, skipping partition detection |
| 198 | */ | 202 | */ |
| 199 | if (strncmp(type, "VOL1", 4) == 0) { | 203 | if (strncmp(type, "VOL1", 4) == 0) { |
| 200 | printk("VOL1/%8s:", name); | 204 | snprintf(tmp, sizeof(tmp), "VOL1/%8s:", name); |
| 205 | strlcat(state->pp_buf, tmp, PAGE_SIZE); | ||
| 201 | /* | 206 | /* |
| 202 | * get block number and read then go through format1 | 207 | * get block number and read then go through format1 |
| 203 | * labels | 208 | * labels |
| @@ -253,7 +258,7 @@ int ibm_partition(struct parsed_partitions *state) | |||
| 253 | 258 | ||
| 254 | } | 259 | } |
| 255 | 260 | ||
| 256 | printk("\n"); | 261 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 257 | goto out_freeall; | 262 | goto out_freeall; |
| 258 | 263 | ||
| 259 | 264 | ||
diff --git a/fs/partitions/karma.c b/fs/partitions/karma.c index 1cc928bb762f..0ea19312706b 100644 --- a/fs/partitions/karma.c +++ b/fs/partitions/karma.c | |||
| @@ -50,7 +50,7 @@ int karma_partition(struct parsed_partitions *state) | |||
| 50 | } | 50 | } |
| 51 | slot++; | 51 | slot++; |
| 52 | } | 52 | } |
| 53 | printk("\n"); | 53 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 54 | put_dev_sector(sect); | 54 | put_dev_sector(sect); |
| 55 | return 1; | 55 | return 1; |
| 56 | } | 56 | } |
diff --git a/fs/partitions/ldm.c b/fs/partitions/ldm.c index 648c9d8f3357..5bf8a04b5d9b 100644 --- a/fs/partitions/ldm.c +++ b/fs/partitions/ldm.c | |||
| @@ -643,7 +643,7 @@ static bool ldm_create_data_partitions (struct parsed_partitions *pp, | |||
| 643 | return false; | 643 | return false; |
| 644 | } | 644 | } |
| 645 | 645 | ||
| 646 | printk (" [LDM]"); | 646 | strlcat(pp->pp_buf, " [LDM]", PAGE_SIZE); |
| 647 | 647 | ||
| 648 | /* Create the data partitions */ | 648 | /* Create the data partitions */ |
| 649 | list_for_each (item, &ldb->v_part) { | 649 | list_for_each (item, &ldb->v_part) { |
| @@ -658,7 +658,7 @@ static bool ldm_create_data_partitions (struct parsed_partitions *pp, | |||
| 658 | part_num++; | 658 | part_num++; |
| 659 | } | 659 | } |
| 660 | 660 | ||
| 661 | printk ("\n"); | 661 | strlcat(pp->pp_buf, "\n", PAGE_SIZE); |
| 662 | return true; | 662 | return true; |
| 663 | } | 663 | } |
| 664 | 664 | ||
diff --git a/fs/partitions/mac.c b/fs/partitions/mac.c index 74465ff7c263..68d6a216ee79 100644 --- a/fs/partitions/mac.c +++ b/fs/partitions/mac.c | |||
| @@ -59,7 +59,7 @@ int mac_partition(struct parsed_partitions *state) | |||
| 59 | put_dev_sector(sect); | 59 | put_dev_sector(sect); |
| 60 | return 0; /* not a MacOS disk */ | 60 | return 0; /* not a MacOS disk */ |
| 61 | } | 61 | } |
| 62 | printk(" [mac]"); | 62 | strlcat(state->pp_buf, " [mac]", PAGE_SIZE); |
| 63 | blocks_in_map = be32_to_cpu(part->map_count); | 63 | blocks_in_map = be32_to_cpu(part->map_count); |
| 64 | for (blk = 1; blk <= blocks_in_map; ++blk) { | 64 | for (blk = 1; blk <= blocks_in_map; ++blk) { |
| 65 | int pos = blk * secsize; | 65 | int pos = blk * secsize; |
| @@ -128,6 +128,6 @@ int mac_partition(struct parsed_partitions *state) | |||
| 128 | #endif | 128 | #endif |
| 129 | 129 | ||
| 130 | put_dev_sector(sect); | 130 | put_dev_sector(sect); |
| 131 | printk("\n"); | 131 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 132 | return 1; | 132 | return 1; |
| 133 | } | 133 | } |
diff --git a/fs/partitions/msdos.c b/fs/partitions/msdos.c index 15bfb7b1e044..5f79a6677c69 100644 --- a/fs/partitions/msdos.c +++ b/fs/partitions/msdos.c | |||
| @@ -213,10 +213,18 @@ static void parse_solaris_x86(struct parsed_partitions *state, | |||
| 213 | put_dev_sector(sect); | 213 | put_dev_sector(sect); |
| 214 | return; | 214 | return; |
| 215 | } | 215 | } |
| 216 | printk(" %s%d: <solaris:", state->name, origin); | 216 | { |
| 217 | char tmp[1 + BDEVNAME_SIZE + 10 + 11 + 1]; | ||
| 218 | |||
| 219 | snprintf(tmp, sizeof(tmp), " %s%d: <solaris:", state->name, origin); | ||
| 220 | strlcat(state->pp_buf, tmp, PAGE_SIZE); | ||
| 221 | } | ||
| 217 | if (le32_to_cpu(v->v_version) != 1) { | 222 | if (le32_to_cpu(v->v_version) != 1) { |
| 218 | printk(" cannot handle version %d vtoc>\n", | 223 | char tmp[64]; |
| 219 | le32_to_cpu(v->v_version)); | 224 | |
| 225 | snprintf(tmp, sizeof(tmp), " cannot handle version %d vtoc>\n", | ||
| 226 | le32_to_cpu(v->v_version)); | ||
| 227 | strlcat(state->pp_buf, tmp, PAGE_SIZE); | ||
| 220 | put_dev_sector(sect); | 228 | put_dev_sector(sect); |
| 221 | return; | 229 | return; |
| 222 | } | 230 | } |
| @@ -224,9 +232,12 @@ static void parse_solaris_x86(struct parsed_partitions *state, | |||
| 224 | max_nparts = le16_to_cpu (v->v_nparts) > 8 ? SOLARIS_X86_NUMSLICE : 8; | 232 | max_nparts = le16_to_cpu (v->v_nparts) > 8 ? SOLARIS_X86_NUMSLICE : 8; |
| 225 | for (i=0; i<max_nparts && state->next<state->limit; i++) { | 233 | for (i=0; i<max_nparts && state->next<state->limit; i++) { |
| 226 | struct solaris_x86_slice *s = &v->v_slice[i]; | 234 | struct solaris_x86_slice *s = &v->v_slice[i]; |
| 235 | char tmp[3 + 10 + 1 + 1]; | ||
| 236 | |||
| 227 | if (s->s_size == 0) | 237 | if (s->s_size == 0) |
| 228 | continue; | 238 | continue; |
| 229 | printk(" [s%d]", i); | 239 | snprintf(tmp, sizeof(tmp), " [s%d]", i); |
| 240 | strlcat(state->pp_buf, tmp, PAGE_SIZE); | ||
| 230 | /* solaris partitions are relative to current MS-DOS | 241 | /* solaris partitions are relative to current MS-DOS |
| 231 | * one; must add the offset of the current partition */ | 242 | * one; must add the offset of the current partition */ |
| 232 | put_partition(state, state->next++, | 243 | put_partition(state, state->next++, |
| @@ -234,7 +245,7 @@ static void parse_solaris_x86(struct parsed_partitions *state, | |||
| 234 | le32_to_cpu(s->s_size)); | 245 | le32_to_cpu(s->s_size)); |
| 235 | } | 246 | } |
| 236 | put_dev_sector(sect); | 247 | put_dev_sector(sect); |
| 237 | printk(" >\n"); | 248 | strlcat(state->pp_buf, " >\n", PAGE_SIZE); |
| 238 | #endif | 249 | #endif |
| 239 | } | 250 | } |
| 240 | 251 | ||
| @@ -250,6 +261,7 @@ static void parse_bsd(struct parsed_partitions *state, | |||
| 250 | Sector sect; | 261 | Sector sect; |
| 251 | struct bsd_disklabel *l; | 262 | struct bsd_disklabel *l; |
| 252 | struct bsd_partition *p; | 263 | struct bsd_partition *p; |
| 264 | char tmp[64]; | ||
| 253 | 265 | ||
| 254 | l = read_part_sector(state, offset + 1, §); | 266 | l = read_part_sector(state, offset + 1, §); |
| 255 | if (!l) | 267 | if (!l) |
| @@ -258,7 +270,9 @@ static void parse_bsd(struct parsed_partitions *state, | |||
| 258 | put_dev_sector(sect); | 270 | put_dev_sector(sect); |
| 259 | return; | 271 | return; |
| 260 | } | 272 | } |
| 261 | printk(" %s%d: <%s:", state->name, origin, flavour); | 273 | |
| 274 | snprintf(tmp, sizeof(tmp), " %s%d: <%s:", state->name, origin, flavour); | ||
| 275 | strlcat(state->pp_buf, tmp, PAGE_SIZE); | ||
| 262 | 276 | ||
| 263 | if (le16_to_cpu(l->d_npartitions) < max_partitions) | 277 | if (le16_to_cpu(l->d_npartitions) < max_partitions) |
| 264 | max_partitions = le16_to_cpu(l->d_npartitions); | 278 | max_partitions = le16_to_cpu(l->d_npartitions); |
| @@ -275,16 +289,18 @@ static void parse_bsd(struct parsed_partitions *state, | |||
| 275 | /* full parent partition, we have it already */ | 289 | /* full parent partition, we have it already */ |
| 276 | continue; | 290 | continue; |
| 277 | if (offset > bsd_start || offset+size < bsd_start+bsd_size) { | 291 | if (offset > bsd_start || offset+size < bsd_start+bsd_size) { |
| 278 | printk("bad subpartition - ignored\n"); | 292 | strlcat(state->pp_buf, "bad subpartition - ignored\n", PAGE_SIZE); |
| 279 | continue; | 293 | continue; |
| 280 | } | 294 | } |
| 281 | put_partition(state, state->next++, bsd_start, bsd_size); | 295 | put_partition(state, state->next++, bsd_start, bsd_size); |
| 282 | } | 296 | } |
| 283 | put_dev_sector(sect); | 297 | put_dev_sector(sect); |
| 284 | if (le16_to_cpu(l->d_npartitions) > max_partitions) | 298 | if (le16_to_cpu(l->d_npartitions) > max_partitions) { |
| 285 | printk(" (ignored %d more)", | 299 | snprintf(tmp, sizeof(tmp), " (ignored %d more)", |
| 286 | le16_to_cpu(l->d_npartitions) - max_partitions); | 300 | le16_to_cpu(l->d_npartitions) - max_partitions); |
| 287 | printk(" >\n"); | 301 | strlcat(state->pp_buf, tmp, PAGE_SIZE); |
| 302 | } | ||
| 303 | strlcat(state->pp_buf, " >\n", PAGE_SIZE); | ||
| 288 | } | 304 | } |
| 289 | #endif | 305 | #endif |
| 290 | 306 | ||
| @@ -333,7 +349,12 @@ static void parse_unixware(struct parsed_partitions *state, | |||
| 333 | put_dev_sector(sect); | 349 | put_dev_sector(sect); |
| 334 | return; | 350 | return; |
| 335 | } | 351 | } |
| 336 | printk(" %s%d: <unixware:", state->name, origin); | 352 | { |
| 353 | char tmp[1 + BDEVNAME_SIZE + 10 + 12 + 1]; | ||
| 354 | |||
| 355 | snprintf(tmp, sizeof(tmp), " %s%d: <unixware:", state->name, origin); | ||
| 356 | strlcat(state->pp_buf, tmp, PAGE_SIZE); | ||
| 357 | } | ||
| 337 | p = &l->vtoc.v_slice[1]; | 358 | p = &l->vtoc.v_slice[1]; |
| 338 | /* I omit the 0th slice as it is the same as whole disk. */ | 359 | /* I omit the 0th slice as it is the same as whole disk. */ |
| 339 | while (p - &l->vtoc.v_slice[0] < UNIXWARE_NUMSLICE) { | 360 | while (p - &l->vtoc.v_slice[0] < UNIXWARE_NUMSLICE) { |
| @@ -347,7 +368,7 @@ static void parse_unixware(struct parsed_partitions *state, | |||
| 347 | p++; | 368 | p++; |
| 348 | } | 369 | } |
| 349 | put_dev_sector(sect); | 370 | put_dev_sector(sect); |
| 350 | printk(" >\n"); | 371 | strlcat(state->pp_buf, " >\n", PAGE_SIZE); |
| 351 | #endif | 372 | #endif |
| 352 | } | 373 | } |
| 353 | 374 | ||
| @@ -376,8 +397,10 @@ static void parse_minix(struct parsed_partitions *state, | |||
| 376 | * the normal boot sector. */ | 397 | * the normal boot sector. */ |
| 377 | if (msdos_magic_present (data + 510) && | 398 | if (msdos_magic_present (data + 510) && |
| 378 | SYS_IND(p) == MINIX_PARTITION) { /* subpartition table present */ | 399 | SYS_IND(p) == MINIX_PARTITION) { /* subpartition table present */ |
| 400 | char tmp[1 + BDEVNAME_SIZE + 10 + 9 + 1]; | ||
| 379 | 401 | ||
| 380 | printk(" %s%d: <minix:", state->name, origin); | 402 | snprintf(tmp, sizeof(tmp), " %s%d: <minix:", state->name, origin); |
| 403 | strlcat(state->pp_buf, tmp, PAGE_SIZE); | ||
| 381 | for (i = 0; i < MINIX_NR_SUBPARTITIONS; i++, p++) { | 404 | for (i = 0; i < MINIX_NR_SUBPARTITIONS; i++, p++) { |
| 382 | if (state->next == state->limit) | 405 | if (state->next == state->limit) |
| 383 | break; | 406 | break; |
| @@ -386,7 +409,7 @@ static void parse_minix(struct parsed_partitions *state, | |||
| 386 | put_partition(state, state->next++, | 409 | put_partition(state, state->next++, |
| 387 | start_sect(p), nr_sects(p)); | 410 | start_sect(p), nr_sects(p)); |
| 388 | } | 411 | } |
| 389 | printk(" >\n"); | 412 | strlcat(state->pp_buf, " >\n", PAGE_SIZE); |
| 390 | } | 413 | } |
| 391 | put_dev_sector(sect); | 414 | put_dev_sector(sect); |
| 392 | #endif /* CONFIG_MINIX_SUBPARTITION */ | 415 | #endif /* CONFIG_MINIX_SUBPARTITION */ |
| @@ -425,7 +448,7 @@ int msdos_partition(struct parsed_partitions *state) | |||
| 425 | 448 | ||
| 426 | if (aix_magic_present(state, data)) { | 449 | if (aix_magic_present(state, data)) { |
| 427 | put_dev_sector(sect); | 450 | put_dev_sector(sect); |
| 428 | printk( " [AIX]"); | 451 | strlcat(state->pp_buf, " [AIX]", PAGE_SIZE); |
| 429 | return 0; | 452 | return 0; |
| 430 | } | 453 | } |
| 431 | 454 | ||
| @@ -446,7 +469,7 @@ int msdos_partition(struct parsed_partitions *state) | |||
| 446 | fb = (struct fat_boot_sector *) data; | 469 | fb = (struct fat_boot_sector *) data; |
| 447 | if (slot == 1 && fb->reserved && fb->fats | 470 | if (slot == 1 && fb->reserved && fb->fats |
| 448 | && fat_valid_media(fb->media)) { | 471 | && fat_valid_media(fb->media)) { |
| 449 | printk("\n"); | 472 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 450 | put_dev_sector(sect); | 473 | put_dev_sector(sect); |
| 451 | return 1; | 474 | return 1; |
| 452 | } else { | 475 | } else { |
| @@ -491,21 +514,21 @@ int msdos_partition(struct parsed_partitions *state) | |||
| 491 | n = min(size, max(sector_size, n)); | 514 | n = min(size, max(sector_size, n)); |
| 492 | put_partition(state, slot, start, n); | 515 | put_partition(state, slot, start, n); |
| 493 | 516 | ||
| 494 | printk(" <"); | 517 | strlcat(state->pp_buf, " <", PAGE_SIZE); |
| 495 | parse_extended(state, start, size); | 518 | parse_extended(state, start, size); |
| 496 | printk(" >"); | 519 | strlcat(state->pp_buf, " >", PAGE_SIZE); |
| 497 | continue; | 520 | continue; |
| 498 | } | 521 | } |
| 499 | put_partition(state, slot, start, size); | 522 | put_partition(state, slot, start, size); |
| 500 | if (SYS_IND(p) == LINUX_RAID_PARTITION) | 523 | if (SYS_IND(p) == LINUX_RAID_PARTITION) |
| 501 | state->parts[slot].flags = ADDPART_FLAG_RAID; | 524 | state->parts[slot].flags = ADDPART_FLAG_RAID; |
| 502 | if (SYS_IND(p) == DM6_PARTITION) | 525 | if (SYS_IND(p) == DM6_PARTITION) |
| 503 | printk("[DM]"); | 526 | strlcat(state->pp_buf, "[DM]", PAGE_SIZE); |
| 504 | if (SYS_IND(p) == EZD_PARTITION) | 527 | if (SYS_IND(p) == EZD_PARTITION) |
| 505 | printk("[EZD]"); | 528 | strlcat(state->pp_buf, "[EZD]", PAGE_SIZE); |
| 506 | } | 529 | } |
| 507 | 530 | ||
| 508 | printk("\n"); | 531 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 509 | 532 | ||
| 510 | /* second pass - output for each on a separate line */ | 533 | /* second pass - output for each on a separate line */ |
| 511 | p = (struct partition *) (0x1be + data); | 534 | p = (struct partition *) (0x1be + data); |
diff --git a/fs/partitions/osf.c b/fs/partitions/osf.c index fc22b85d436a..48cec7cbca17 100644 --- a/fs/partitions/osf.c +++ b/fs/partitions/osf.c | |||
| @@ -72,7 +72,7 @@ int osf_partition(struct parsed_partitions *state) | |||
| 72 | le32_to_cpu(partition->p_size)); | 72 | le32_to_cpu(partition->p_size)); |
| 73 | slot++; | 73 | slot++; |
| 74 | } | 74 | } |
| 75 | printk("\n"); | 75 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 76 | put_dev_sector(sect); | 76 | put_dev_sector(sect); |
| 77 | return 1; | 77 | return 1; |
| 78 | } | 78 | } |
diff --git a/fs/partitions/sgi.c b/fs/partitions/sgi.c index 43b1df9aa16c..ea8a86dceaf4 100644 --- a/fs/partitions/sgi.c +++ b/fs/partitions/sgi.c | |||
| @@ -76,7 +76,7 @@ int sgi_partition(struct parsed_partitions *state) | |||
| 76 | } | 76 | } |
| 77 | slot++; | 77 | slot++; |
| 78 | } | 78 | } |
| 79 | printk("\n"); | 79 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 80 | put_dev_sector(sect); | 80 | put_dev_sector(sect); |
| 81 | return 1; | 81 | return 1; |
| 82 | } | 82 | } |
diff --git a/fs/partitions/sun.c b/fs/partitions/sun.c index a32660e25f7f..b5b6fcfb3d36 100644 --- a/fs/partitions/sun.c +++ b/fs/partitions/sun.c | |||
| @@ -116,7 +116,7 @@ int sun_partition(struct parsed_partitions *state) | |||
| 116 | } | 116 | } |
| 117 | slot++; | 117 | slot++; |
| 118 | } | 118 | } |
| 119 | printk("\n"); | 119 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 120 | put_dev_sector(sect); | 120 | put_dev_sector(sect); |
| 121 | return 1; | 121 | return 1; |
| 122 | } | 122 | } |
diff --git a/fs/partitions/sysv68.c b/fs/partitions/sysv68.c index 9030c864428e..9627ccffc1c4 100644 --- a/fs/partitions/sysv68.c +++ b/fs/partitions/sysv68.c | |||
| @@ -54,6 +54,7 @@ int sysv68_partition(struct parsed_partitions *state) | |||
| 54 | unsigned char *data; | 54 | unsigned char *data; |
| 55 | struct dkblk0 *b; | 55 | struct dkblk0 *b; |
| 56 | struct slice *slice; | 56 | struct slice *slice; |
| 57 | char tmp[64]; | ||
| 57 | 58 | ||
| 58 | data = read_part_sector(state, 0, §); | 59 | data = read_part_sector(state, 0, §); |
| 59 | if (!data) | 60 | if (!data) |
| @@ -73,7 +74,8 @@ int sysv68_partition(struct parsed_partitions *state) | |||
| 73 | return -1; | 74 | return -1; |
| 74 | 75 | ||
| 75 | slices -= 1; /* last slice is the whole disk */ | 76 | slices -= 1; /* last slice is the whole disk */ |
| 76 | printk("sysV68: %s(s%u)", state->name, slices); | 77 | snprintf(tmp, sizeof(tmp), "sysV68: %s(s%u)", state->name, slices); |
| 78 | strlcat(state->pp_buf, tmp, PAGE_SIZE); | ||
| 77 | slice = (struct slice *)data; | 79 | slice = (struct slice *)data; |
| 78 | for (i = 0; i < slices; i++, slice++) { | 80 | for (i = 0; i < slices; i++, slice++) { |
| 79 | if (slot == state->limit) | 81 | if (slot == state->limit) |
| @@ -82,11 +84,12 @@ int sysv68_partition(struct parsed_partitions *state) | |||
| 82 | put_partition(state, slot, | 84 | put_partition(state, slot, |
| 83 | be32_to_cpu(slice->blkoff), | 85 | be32_to_cpu(slice->blkoff), |
| 84 | be32_to_cpu(slice->nblocks)); | 86 | be32_to_cpu(slice->nblocks)); |
| 85 | printk("(s%u)", i); | 87 | snprintf(tmp, sizeof(tmp), "(s%u)", i); |
| 88 | strlcat(state->pp_buf, tmp, PAGE_SIZE); | ||
| 86 | } | 89 | } |
| 87 | slot++; | 90 | slot++; |
| 88 | } | 91 | } |
| 89 | printk("\n"); | 92 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 90 | put_dev_sector(sect); | 93 | put_dev_sector(sect); |
| 91 | return 1; | 94 | return 1; |
| 92 | } | 95 | } |
diff --git a/fs/partitions/ultrix.c b/fs/partitions/ultrix.c index db9eef260364..8dbaf9f77a99 100644 --- a/fs/partitions/ultrix.c +++ b/fs/partitions/ultrix.c | |||
| @@ -39,7 +39,7 @@ int ultrix_partition(struct parsed_partitions *state) | |||
| 39 | label->pt_part[i].pi_blkoff, | 39 | label->pt_part[i].pi_blkoff, |
| 40 | label->pt_part[i].pi_nblocks); | 40 | label->pt_part[i].pi_nblocks); |
| 41 | put_dev_sector(sect); | 41 | put_dev_sector(sect); |
| 42 | printk ("\n"); | 42 | strlcat(state->pp_buf, "\n", PAGE_SIZE); |
| 43 | return 1; | 43 | return 1; |
| 44 | } else { | 44 | } else { |
| 45 | put_dev_sector(sect); | 45 | put_dev_sector(sect); |
