aboutsummaryrefslogtreecommitdiff
path: root/sbin/tunefs/tunefs.c
diff options
context:
space:
mode:
authorJoerg Wunsch <joerg@FreeBSD.org>1995-06-25 17:46:13 +0000
committerJoerg Wunsch <joerg@FreeBSD.org>1995-06-25 17:46:13 +0000
commit16a7269ee5092dea79025f5841c7b81ec7520182 (patch)
tree00345a13a072d656e40c6abe580696fa4f5bf502 /sbin/tunefs/tunefs.c
parent85cd1fc59040e263f3086fda6add4a7d0257771e (diff)
downloadsrc-16a7269ee5092dea79025f5841c7b81ec7520182.tar.gz
src-16a7269ee5092dea79025f5841c7b81ec7520182.zip
When tuneing filesystems with tunefs, it is not obvious what the current
parameters are. You can use dumpfs, but that's not obvious which settings are tuneable, and is far from clear to the non-guru (it's like using a hexdump of a tar archive to get a table-of-contents). There is also an undocumented option in the man page that can be dangerous. Suppose your disk driver decides to scramble all writes while you tell tunefs to update all backup superblocks. This suggested change adds a '-p' (print) switch to bring it in line with some SVR4 systems. (Slightly changed by me, mostly for optics. - joerg) Submitted by: peter@haywire.dialix.com
Notes
Notes: svn path=/head/; revision=9315
Diffstat (limited to 'sbin/tunefs/tunefs.c')
-rw-r--r--sbin/tunefs/tunefs.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/sbin/tunefs/tunefs.c b/sbin/tunefs/tunefs.c
index e277a71ce2b3..3677d8957811 100644
--- a/sbin/tunefs/tunefs.c
+++ b/sbin/tunefs/tunefs.c
@@ -74,6 +74,7 @@ void bwrite(daddr_t, char *, int);
int bread(daddr_t, char *, int);
void getsb(struct fs *, char *);
void usage __P((void));
+void printfs __P((void));
int
main(argc, argv)
@@ -117,6 +118,10 @@ again:
Aflag++;
continue;
+ case 'p':
+ printfs();
+ exit(0);
+
case 'a':
name = "maximum contiguous block count";
if (argc < 1)
@@ -233,6 +238,7 @@ usage()
fprintf(stderr, "\t-e maximum blocks per file in a cylinder group\n");
fprintf(stderr, "\t-m minimum percentage of free space\n");
fprintf(stderr, "\t-o optimization preference (`space' or `time')\n");
+ fprintf(stderr, "\t-p no change - just prints current tuneable settings\n");
exit(2);
}
@@ -253,6 +259,27 @@ getsb(fs, file)
}
void
+printfs()
+{
+ warnx("maximum contiguous block count: (-a) %d",
+ sblock.fs_maxcontig);
+ warnx("rotational delay between contiguous blocks: (-d) %d ms",
+ sblock.fs_rotdelay);
+ warnx("maximum blocks per file in a cylinder group: (-e) %d",
+ sblock.fs_maxbpg);
+ warnx("minimum percentage of free space: (-m) %d%%",
+ sblock.fs_minfree);
+ warnx("optimization preference: (-o) %s",
+ sblock.fs_optim == FS_OPTSPACE ? "space" : "time");
+ if (sblock.fs_minfree >= MINFREE &&
+ sblock.fs_optim == FS_OPTSPACE)
+ warnx(OPTWARN, "time", ">=", MINFREE);
+ if (sblock.fs_minfree < MINFREE &&
+ sblock.fs_optim == FS_OPTTIME)
+ warnx(OPTWARN, "space", "<", MINFREE);
+}
+
+void
bwrite(blk, buf, size)
daddr_t blk;
char *buf;