Fix some serious brain damage in the default block/frag/cpg parameters

that are used if none at all are specified for a partition. Don't
keep replaying the last field if we run out of fields when processing
a line. Use a 8:1 frag:block ratio for both defaults.

More work here is required. I think disklabel should not attempt
to choose default filesystem parameters, and instead let newfs pick
any defaults if required.

PR:		i386/38703
Reported by:	Martin Kraemer <Martin.Kraemer@Fujitsu-Siemens.com>
This commit is contained in:
iedowse 2002-05-30 01:44:35 +00:00
parent 84414f48de
commit 63083c58de
2 changed files with 14 additions and 18 deletions

View File

@ -94,7 +94,7 @@ static const char rcsid[] =
#define DEFAULT_NEWFS_CPG 16U
#define BIG_NEWFS_BLOCK 16384U
#define BIG_NEWFS_FRAG 4096U
#define BIG_NEWFS_FRAG 2048U
#define BIG_NEWFS_CPG 64U
#if defined(__i386__) || defined(__ia64__)
@ -1169,8 +1169,6 @@ getasciilabel(FILE *f, struct disklabel *lp)
return (1); \
} else { \
cp = tp, tp = word(cp); \
if (tp == NULL) \
tp = cp; \
(n) = atoi(cp); \
} \
} while (0)
@ -1183,8 +1181,6 @@ getasciilabel(FILE *f, struct disklabel *lp)
} else { \
char *tmp; \
cp = tp, tp = word(cp); \
if (tp == NULL) \
tp = cp; \
(n) = strtol(cp,&tmp,10); \
if (tmp) (w) = *tmp; \
} \
@ -1278,12 +1274,14 @@ getasciipartspec(char *tp, struct disklabel *lp, int part, int lineno)
/*
* FIX! These are too low, but are traditional
*/
pp->p_fsize = DEFAULT_NEWFS_BLOCK;
pp->p_frag = (unsigned char) DEFAULT_NEWFS_FRAG;
pp->p_fsize = DEFAULT_NEWFS_FRAG;
pp->p_frag = DEFAULT_NEWFS_BLOCK /
DEFAULT_NEWFS_FRAG;
pp->p_cpg = DEFAULT_NEWFS_CPG;
} else {
pp->p_fsize = BIG_NEWFS_BLOCK;
pp->p_frag = (unsigned char) BIG_NEWFS_FRAG;
pp->p_fsize = BIG_NEWFS_FRAG;
pp->p_frag = BIG_NEWFS_BLOCK /
BIG_NEWFS_FRAG;
pp->p_cpg = BIG_NEWFS_CPG;
}
}

View File

@ -94,7 +94,7 @@ static const char rcsid[] =
#define DEFAULT_NEWFS_CPG 16U
#define BIG_NEWFS_BLOCK 16384U
#define BIG_NEWFS_FRAG 4096U
#define BIG_NEWFS_FRAG 2048U
#define BIG_NEWFS_CPG 64U
#if defined(__i386__) || defined(__ia64__)
@ -1169,8 +1169,6 @@ getasciilabel(FILE *f, struct disklabel *lp)
return (1); \
} else { \
cp = tp, tp = word(cp); \
if (tp == NULL) \
tp = cp; \
(n) = atoi(cp); \
} \
} while (0)
@ -1183,8 +1181,6 @@ getasciilabel(FILE *f, struct disklabel *lp)
} else { \
char *tmp; \
cp = tp, tp = word(cp); \
if (tp == NULL) \
tp = cp; \
(n) = strtol(cp,&tmp,10); \
if (tmp) (w) = *tmp; \
} \
@ -1278,12 +1274,14 @@ getasciipartspec(char *tp, struct disklabel *lp, int part, int lineno)
/*
* FIX! These are too low, but are traditional
*/
pp->p_fsize = DEFAULT_NEWFS_BLOCK;
pp->p_frag = (unsigned char) DEFAULT_NEWFS_FRAG;
pp->p_fsize = DEFAULT_NEWFS_FRAG;
pp->p_frag = DEFAULT_NEWFS_BLOCK /
DEFAULT_NEWFS_FRAG;
pp->p_cpg = DEFAULT_NEWFS_CPG;
} else {
pp->p_fsize = BIG_NEWFS_BLOCK;
pp->p_frag = (unsigned char) BIG_NEWFS_FRAG;
pp->p_fsize = BIG_NEWFS_FRAG;
pp->p_frag = BIG_NEWFS_BLOCK /
BIG_NEWFS_FRAG;
pp->p_cpg = BIG_NEWFS_CPG;
}
}