summaryrefslogtreecommitdiffstats
path: root/sbin/tunefs
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/tunefs')
-rw-r--r--sbin/tunefs/tunefs.812
-rw-r--r--sbin/tunefs/tunefs.c27
2 files changed, 39 insertions, 0 deletions
diff --git a/sbin/tunefs/tunefs.8 b/sbin/tunefs/tunefs.8
index b95ff9d..fbec66c 100644
--- a/sbin/tunefs/tunefs.8
+++ b/sbin/tunefs/tunefs.8
@@ -39,10 +39,12 @@
.Nd tune up an existing file system
.Sh SYNOPSIS
.Nm tunefs
+.Op Fl A
.Op Fl a Ar maxcontig
.Op Fl d Ar rotdelay
.Op Fl e Ar maxbpg
.Op Fl m Ar minfree
+.Op Fl p
.Bk -words
.Op Fl o Ar optimize_preference
.Ek
@@ -54,6 +56,10 @@ which affect the layout policies.
The parameters which are to be changed are indicated by the flags
given below:
.Bl -tag -width Ds
+.It Fl A
+The file system has several backups of the super-block. Specifying
+this option will cause all backups to be modified as well as the
+primary super-block. This is potentially dangerous - use with caution.
.It Fl a Ar maxcontig
This specifies the maximum number of contiguous blocks that will
be laid out before forcing a rotational delay (see
@@ -103,6 +109,12 @@ fragmentation on the disk. Optimization for space has much
higher overhead for file writes.
The kernel normally changes the preference automatically as
the percent fragmentation changes on the file system.
+.It Fl p
+This option shows a summary of what the current tuneable settings
+are on the selected file system. More detailed information can be
+obtained in the
+.Xr dumpfs 8
+manual page.
.El
.Sh SEE ALSO
.Xr fs 5 ,
diff --git a/sbin/tunefs/tunefs.c b/sbin/tunefs/tunefs.c
index e277a71..3677d89 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;
OpenPOWER on IntegriCloud