svn commit: r310382 - head/sbin/tunefs

Brooks Davis brooks at FreeBSD.org
Thu Dec 22 00:35:14 UTC 2016


Author: brooks
Date: Thu Dec 22 00:35:12 2016
New Revision: 310382
URL: https://svnweb.freebsd.org/changeset/base/310382

Log:
  Convert tunefs use to nmount(2)
  
  Reviewed by:	jhb, emaste
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D8822

Modified:
  head/sbin/tunefs/Makefile
  head/sbin/tunefs/tunefs.c

Modified: head/sbin/tunefs/Makefile
==============================================================================
--- head/sbin/tunefs/Makefile	Thu Dec 22 00:09:53 2016	(r310381)
+++ head/sbin/tunefs/Makefile	Thu Dec 22 00:35:12 2016	(r310382)
@@ -3,9 +3,14 @@
 
 PACKAGE=runtime
 PROG=	tunefs
+SRCS=	tunefs.c getmntopts.c
 LIBADD=	ufs
 MAN=	tunefs.8
 
+MOUNT=	${SRCTOP}/sbin/mount
+CFLAGS+=	-I${MOUNT}
+.PATH:	${MOUNT}
+
 WARNS=	3
 
 .include <bsd.prog.mk>

Modified: head/sbin/tunefs/tunefs.c
==============================================================================
--- head/sbin/tunefs/tunefs.c	Thu Dec 22 00:09:53 2016	(r310381)
+++ head/sbin/tunefs/tunefs.c	Thu Dec 22 00:35:12 2016	(r310382)
@@ -59,6 +59,7 @@ __FBSDID("$FreeBSD$");
 #include <fcntl.h>
 #include <fstab.h>
 #include <libufs.h>
+#include <mntopts.h>
 #include <paths.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -93,9 +94,11 @@ main(int argc, char *argv[])
 	int kvalue, Lflag, lflag, mflag, mvalue, Nflag, nflag, oflag, ovalue;
 	int pflag, sflag, svalue, Svalue, tflag;
 	int ch, found_arg, i;
+	int iovlen = 0;
 	const char *chg[2];
-	struct ufs_args args;
 	struct statfs stfs;
+	struct iovec *iov = NULL;
+	char errmsg[255] = {0};
 
 	if (argc < 3)
 		usage();
@@ -556,10 +559,16 @@ main(int argc, char *argv[])
 		goto err;
 	ufs_disk_close(&disk);
 	if (active) {
-		bzero(&args, sizeof(args));
-		if (mount("ufs", on,
-		    stfs.f_flags | MNT_UPDATE | MNT_RELOAD, &args) < 0)
-			err(9, "%s: reload", special);
+		build_iovec_argf(&iov, &iovlen, "fstype", "ufs");
+		build_iovec_argf(&iov, &iovlen, "fspath", "%s", on);
+		build_iovec(&iov, &iovlen, "errmsg", errmsg, sizeof(errmsg));
+		if (nmount(iov, iovlen,
+		    stfs.f_flags | MNT_UPDATE | MNT_RELOAD) < 0) {
+			if (errmsg[0])
+				err(9, "%s: reload: %s", special, errmsg);
+			else
+				err(9, "%s: reload", special);
+		}
 		warnx("file system reloaded");
 	}
 	exit(0);


More information about the svn-src-all mailing list