Fixes for handling 'wfd' (and any other disk with a non-2-character name)

Submitted by:	Some from Satoh Junichi (junichi@astec.co.jp)
This commit is contained in:
msmith 1998-10-27 21:14:03 +00:00
parent e4bdee768d
commit e695d3b3f2
2 changed files with 9 additions and 9 deletions

View File

@ -6,7 +6,7 @@
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
* ----------------------------------------------------------------------------
*
* $Id: create_chunk.c,v 1.30 1998/03/20 23:43:03 jkh Exp $
* $Id: create_chunk.c,v 1.31 1998/09/15 10:23:17 gibbs Exp $
*
*/
@ -254,18 +254,17 @@ MakeDev(struct chunk *c1, const char *path)
return 0;
if (!strncmp(p, "wd", 2))
bmaj = 0, cmaj = 3;
bmaj = 0, cmaj = 3, p += 2;
else if (!strncmp(p, "sd", 2))
bmaj = 4, cmaj = 13;
bmaj = 4, cmaj = 13, p += 2;
else if (!strncmp(p, "wfd", 3))
bmaj = 1, cmaj = 87;
bmaj = 1, cmaj = 87, p += 3;
else if (!strncmp(p, "da", 2)) /* CAM support */
bmaj = 4, cmaj = 13;
bmaj = 4, cmaj = 13, p += 2;
else {
msgDebug("MakeDev: Unknown major/minor for devtype %s\n", p);
return 0;
}
p += 2;
if (!isdigit(*p)) {
msgDebug("MakeDev: Invalid disk unit passed: %s\n", p);
return 0;

View File

@ -6,7 +6,7 @@
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
* ----------------------------------------------------------------------------
*
* $Id: write_disk.c,v 1.22 1998/09/30 21:40:51 jkh Exp $
* $Id: write_disk.c,v 1.23 1998/10/06 11:57:08 dfr Exp $
*
*/
@ -64,10 +64,10 @@ Write_FreeBSD(int fd, struct disk *new, struct disk *old, struct chunk *c1)
for(c2=c1->part;c2;c2=c2->next) {
if (c2->type == unused) continue;
if (!strcmp(c2->name,"X")) continue;
j = c2->name[5] - 'a';
j = c2->name[strlen(new->name) + 2] - 'a';
if (j < 0 || j >= MAXPARTITIONS || j == RAW_PART) {
#ifdef DEBUG
warn("Weird parititon letter %c",c2->name[5]);
warn("Weird parititon letter %c",c2->name[strlen(new->name) + 2]);
#endif
continue;
}
@ -173,6 +173,7 @@ Write_Disk(struct disk *d1)
if (c1->type == unused) continue;
if (!strcmp(c1->name,"X")) continue;
j = c1->name[4] - '1';
j = c1->name[strlen(d1->name) + 1] - '1';
if (j < 0 || j > 3)
continue;
s[j]++;