summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2015-08-08 09:57:38 +0000
committerpjd <pjd@FreeBSD.org>2015-08-08 09:57:38 +0000
commitf1eded629ea42098936bff4daa853471c65cc765 (patch)
tree9d18ca62cd1c4a3beb0d5634d907f0f208030e8b
parent2ae822a47d155274a8b019dffdb60f0992293ae4 (diff)
downloadFreeBSD-src-f1eded629ea42098936bff4daa853471c65cc765.zip
FreeBSD-src-f1eded629ea42098936bff4daa853471c65cc765.tar.gz
Allow to disable BIO_DELETE passthru in fstab for swap-on-geli devices by
passing 'notrim' option. PR: 198863 Submitted by: Matthew D. Fuller fullermd at over-yonder dot net
-rw-r--r--sbin/swapon/swapon.c10
-rw-r--r--share/man/man5/fstab.51
2 files changed, 7 insertions, 4 deletions
diff --git a/sbin/swapon/swapon.c b/sbin/swapon/swapon.c
index 033c40a..ed9f568 100644
--- a/sbin/swapon/swapon.c
+++ b/sbin/swapon/swapon.c
@@ -313,7 +313,7 @@ static char *
swap_on_geli_args(const char *mntops)
{
const char *aalgo, *ealgo, *keylen_str, *sectorsize_str;
- const char *aflag, *eflag, *lflag, *sflag;
+ const char *aflag, *eflag, *lflag, *Tflag, *sflag;
char *p, *args, *token, *string, *ops;
int argsize, pagesize;
size_t pagesize_len;
@@ -321,7 +321,7 @@ swap_on_geli_args(const char *mntops)
/* Use built-in defaults for geli(8). */
aalgo = ealgo = keylen_str = "";
- aflag = eflag = lflag = "";
+ aflag = eflag = lflag = Tflag = "";
/* We will always specify sectorsize. */
sflag = " -s ";
@@ -365,6 +365,8 @@ swap_on_geli_args(const char *mntops)
free(ops);
return (NULL);
}
+ } else if ((p = strstr(token, "notrim")) == token) {
+ Tflag = " -T ";
} else if (strcmp(token, "sw") != 0) {
warnx("Invalid option: %s", token);
free(ops);
@@ -387,8 +389,8 @@ swap_on_geli_args(const char *mntops)
sectorsize_str = p;
}
- argsize = asprintf(&args, "%s%s%s%s%s%s%s%s -d",
- aflag, aalgo, eflag, ealgo, lflag, keylen_str,
+ argsize = asprintf(&args, "%s%s%s%s%s%s%s%s%s -d",
+ aflag, aalgo, eflag, ealgo, lflag, keylen_str, Tflag,
sflag, sectorsize_str);
free(ops);
diff --git a/share/man/man5/fstab.5 b/share/man/man5/fstab.5
index f6c3ffb..062ab60 100644
--- a/share/man/man5/fstab.5
+++ b/share/man/man5/fstab.5
@@ -242,6 +242,7 @@ The
.Dq ealgo ,
.Dq aalgo ,
.Dq keylen ,
+.Dq notrim ,
and
.Dq sectorsize
options may be passed to control those
OpenPOWER on IntegriCloud