aboutsummaryrefslogtreecommitdiff
path: root/sbin/bsdlabel/bsdlabel.c
diff options
context:
space:
mode:
authorBruce Evans <bde@FreeBSD.org>1995-02-22 23:21:29 +0000
committerBruce Evans <bde@FreeBSD.org>1995-02-22 23:21:29 +0000
commitf75dd5183215816c9a2f43e04bba35e96a636f9a (patch)
treeda91cce1d2377e54b18ccf6ea2f9b88e67d5d540 /sbin/bsdlabel/bsdlabel.c
parentd8947494e58e8c4bbd123e589d190442bcb41228 (diff)
downloadsrc-f75dd5183215816c9a2f43e04bba35e96a636f9a.tar.gz
src-f75dd5183215816c9a2f43e04bba35e96a636f9a.zip
Don't clobber d_secperunit in `disklabel -e'. `disklabel -e' replaces all
the values that it doesn't print by defaults. This seems wrong. I want to be able to see the total number of sectors more than edit it. The default d_secperunit of (sectors/track * tracks/cylinder * cylinders) is bogus if sectors/track is only an approximation and more bogus if sectors/track and tracks/cylinder are dummy values such as 4096 and 1 to defeat ufs's pessimizations.
Notes
Notes: svn path=/head/; revision=6643
Diffstat (limited to 'sbin/bsdlabel/bsdlabel.c')
-rw-r--r--sbin/bsdlabel/bsdlabel.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/sbin/bsdlabel/bsdlabel.c b/sbin/bsdlabel/bsdlabel.c
index efcbbf2f27ce..e5ae274012f9 100644
--- a/sbin/bsdlabel/bsdlabel.c
+++ b/sbin/bsdlabel/bsdlabel.c
@@ -663,6 +663,7 @@ display(f, lp)
fprintf(f, "tracks/cylinder: %d\n", lp->d_ntracks);
fprintf(f, "sectors/cylinder: %d\n", lp->d_secpercyl);
fprintf(f, "cylinders: %d\n", lp->d_ncylinders);
+ fprintf(f, "sectors/unit: %d\n", lp->d_secperunit);
fprintf(f, "rpm: %d\n", lp->d_rpm);
fprintf(f, "interleave: %d\n", lp->d_interleave);
fprintf(f, "trackskew: %d\n", lp->d_trackskew);
@@ -989,6 +990,16 @@ getasciilabel(f, lp)
lp->d_ncylinders = v;
continue;
}
+ if (streq(cp, "sectors/unit")) {
+ v = atoi(tp);
+ if (v <= 0) {
+ fprintf(stderr, "line %d: %s: bad %s\n",
+ lineno, tp, cp);
+ errors++;
+ } else
+ lp->d_secperunit = v;
+ continue;
+ }
if (streq(cp, "rpm")) {
v = atoi(tp);
if (v <= 0) {