summaryrefslogtreecommitdiffstats
path: root/sbin/mdmfs
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2011-09-06 10:19:01 +0000
committerkib <kib@FreeBSD.org>2011-09-06 10:19:01 +0000
commit3867ad03de4ff7dcaff09fc37aaed18d9eeaac00 (patch)
treed4da7dfacfbc9bfe8798bdb0866976cef27fb92a /sbin/mdmfs
parent6184ef6122298d90e6be72044f916d1356b1f089 (diff)
downloadFreeBSD-src-3867ad03de4ff7dcaff09fc37aaed18d9eeaac00.zip
FreeBSD-src-3867ad03de4ff7dcaff09fc37aaed18d9eeaac00.tar.gz
dd -t switch for mdmfs to enable TRIM on the configured filesystem.
While there, fix minor style issues. Submitted by: Alex Kozlov <spam rm-rf kiev ua> MFC after: 1 week Approved by: re (bz)
Diffstat (limited to 'sbin/mdmfs')
-rw-r--r--sbin/mdmfs/mdmfs.811
-rw-r--r--sbin/mdmfs/mdmfs.c11
2 files changed, 16 insertions, 6 deletions
diff --git a/sbin/mdmfs/mdmfs.8 b/sbin/mdmfs/mdmfs.8
index ef8e596..f2db7da 100644
--- a/sbin/mdmfs/mdmfs.8
+++ b/sbin/mdmfs/mdmfs.8
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd February 15, 2007
+.Dd September 4, 2011
.Dt MDMFS 8
.Os
.Sh NAME
@@ -36,7 +36,7 @@
driver
.Sh SYNOPSIS
.Nm
-.Op Fl DLlMNPSUX
+.Op Fl DLlMNPStUX
.Op Fl a Ar maxcontig
.Op Fl b Ar block-size
.Op Fl c Ar blocks-per-cylinder-group
@@ -224,6 +224,13 @@ and the optional
.Xr malloc 9
backed disks
.Pq Dv MD_MALLOC .
+.It Fl t
+Turn on the TRIM enable flag for
+.Xr newfs 8 .
+The
+.Xr md 4
+device supports the BIO_DELETE command, enabling the TRIM on created
+filesystem allows return of freed memory to the system pool.
.It Fl U
Enable soft-updates on the file system.
This is the default, and is accepted only
diff --git a/sbin/mdmfs/mdmfs.c b/sbin/mdmfs/mdmfs.c
index bdd880b..ef45040 100644
--- a/sbin/mdmfs/mdmfs.c
+++ b/sbin/mdmfs/mdmfs.c
@@ -127,7 +127,7 @@ main(int argc, char **argv)
}
while ((ch = getopt(argc, argv,
- "a:b:Cc:Dd:E:e:F:f:hi:LlMm:NnO:o:Pp:Ss:t:Uv:w:X")) != -1)
+ "a:b:Cc:Dd:E:e:F:f:hi:LlMm:NnO:o:Pp:Ss:tUv:w:X")) != -1)
switch (ch) {
case 'a':
argappend(&newfs_arg, "-a %s", optarg);
@@ -212,6 +212,9 @@ main(int argc, char **argv)
case 's':
argappend(&mdconfig_arg, "-s %s", optarg);
break;
+ case 't':
+ argappend(&newfs_arg, "-t");
+ break;
case 'U':
softdep = true;
break;
@@ -282,7 +285,7 @@ argappend(char **dstp, const char *fmt, ...)
{
char *old, *new;
va_list ap;
-
+
old = *dstp;
assert(old != NULL);
@@ -417,7 +420,7 @@ do_mdconfig_detach(void)
rv = run(NULL, "%s -d -u %s%d", path_mdconfig, mdname, unit);
if (rv && debug) /* This is allowed to fail. */
warnx("mdconfig (detach) exited with error code %d (ignored)",
- rv);
+ rv);
}
/*
@@ -656,7 +659,7 @@ usage(void)
{
fprintf(stderr,
-"usage: %s [-DLlMNnPSUX] [-a maxcontig] [-b block-size]\n"
+"usage: %s [-DLlMNnPStUX] [-a maxcontig] [-b block-size]\n"
"\t[-c blocks-per-cylinder-group][-d max-extent-size] [-E path-mdconfig]\n"
"\t[-e maxbpg] [-F file] [-f frag-size] [-i bytes] [-m percent-free]\n"
"\t[-O optimization] [-o mount-options]\n"
OpenPOWER on IntegriCloud