aboutsummaryrefslogtreecommitdiff
path: root/sbin
diff options
context:
space:
mode:
authorIan Dowse <iedowse@FreeBSD.org>2002-05-30 01:44:35 +0000
committerIan Dowse <iedowse@FreeBSD.org>2002-05-30 01:44:35 +0000
commitf1a7b7ee8d712eac0af1041e7203e05041b02d13 (patch)
tree838c7efc689b852eb6aad61645dbaf43155e2359 /sbin
parent67b46708ef39d36da1d139023a51bf6cecdce23f (diff)
downloadsrc-f1a7b7ee8d712eac0af1041e7203e05041b02d13.tar.gz
src-f1a7b7ee8d712eac0af1041e7203e05041b02d13.zip
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>
Notes
Notes: svn path=/head/; revision=97535
Diffstat (limited to 'sbin')
-rw-r--r--sbin/bsdlabel/bsdlabel.c16
-rw-r--r--sbin/disklabel/disklabel.c16
2 files changed, 14 insertions, 18 deletions
diff --git a/sbin/bsdlabel/bsdlabel.c b/sbin/bsdlabel/bsdlabel.c
index 45964b652554..e7417ba0107b 100644
--- a/sbin/bsdlabel/bsdlabel.c
+++ b/sbin/bsdlabel/bsdlabel.c
@@ -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;
}
}
diff --git a/sbin/disklabel/disklabel.c b/sbin/disklabel/disklabel.c
index 45964b652554..e7417ba0107b 100644
--- a/sbin/disklabel/disklabel.c
+++ b/sbin/disklabel/disklabel.c
@@ -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;
}
}