svn commit: r295800 - head/usr.bin/cap_mkdb

Stefan Esser se at FreeBSD.org
Fri Feb 19 08:42:14 UTC 2016


Author: se
Date: Fri Feb 19 08:42:13 2016
New Revision: 295800
URL: https://svnweb.freebsd.org/changeset/base/295800

Log:
  Remove O_SYNC from the options passed to dbmopen().
  
  The output file is created as a temporary file that is moved over the
  existing file after completion. Thus there is no need to immediately
  flush all created db records to the temporary file.
  
  This speeds up creation of the termcap db by a factor of 40 on my
  ZFS based /etc filesytem (from 25 seconds to 0.6 seconds).
  
  I have compared multiple output files created with and without O_SYNC
  and they came out identical each time.  Nonetheless it might be best
  to MFC this change and the similar one for services_mkdb (r295465) at
  the same time when the changes to hash.c in review D5186 are merged.
  
  MFC:	 1 week

Modified:
  head/usr.bin/cap_mkdb/cap_mkdb.c

Modified: head/usr.bin/cap_mkdb/cap_mkdb.c
==============================================================================
--- head/usr.bin/cap_mkdb/cap_mkdb.c	Fri Feb 19 08:41:47 2016	(r295799)
+++ head/usr.bin/cap_mkdb/cap_mkdb.c	Fri Feb 19 08:42:13 2016	(r295800)
@@ -119,7 +119,7 @@ main(int argc, char *argv[])
 	(void)snprintf(buf, sizeof(buf), "%s.db", capname ? capname : *argv);
 	if ((capname = strdup(buf)) == NULL)
 		errx(1, "strdup failed");
-	if ((capdbp = dbopen(capname, O_CREAT | O_TRUNC | O_RDWR | O_SYNC,
+	if ((capdbp = dbopen(capname, O_CREAT | O_TRUNC | O_RDWR,
 	    DEFFILEMODE, DB_HASH, &openinfo)) == NULL)
 		err(1, "%s", buf);
 


More information about the svn-src-all mailing list