Author: pjd
Date: Sat Aug  8 09:57:38 2015
New Revision: 286445
URL: https://svnweb.freebsd.org/changeset/base/286445

Log:
  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

Modified:
  head/sbin/swapon/swapon.c
  head/share/man/man5/fstab.5

Modified: head/sbin/swapon/swapon.c
==============================================================================
--- head/sbin/swapon/swapon.c   Sat Aug  8 09:51:38 2015        (r286444)
+++ head/sbin/swapon/swapon.c   Sat Aug  8 09:57:38 2015        (r286445)
@@ -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);

Modified: head/share/man/man5/fstab.5
==============================================================================
--- head/share/man/man5/fstab.5 Sat Aug  8 09:51:38 2015        (r286444)
+++ head/share/man/man5/fstab.5 Sat Aug  8 09:57:38 2015        (r286445)
@@ -242,6 +242,7 @@ The
 .Dq ealgo ,
 .Dq aalgo ,
 .Dq keylen ,
+.Dq notrim ,
 and
 .Dq sectorsize
 options may be passed to control those
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to