Use eatmydata!
authorPeter Palfrader <peter@palfrader.org>
Mon, 12 Mar 2012 14:52:04 +0000 (15:52 +0100)
committerPeter Palfrader <peter@palfrader.org>
Mon, 12 Mar 2012 14:52:04 +0000 (15:52 +0100)
debian/changelog
ud-generate

index 33974b4..57f4daf 100644 (file)
@@ -44,6 +44,8 @@ userdir-ldap (0.3.80) UNRELEASED; urgency=low
     - get rid of global state variable CurrentHost.  This will enable upcoming
       changes.
     - UDLdap.py: make a cache for __getitem__() decisions.
+    - wrap cdbmake calls in eatmydata.  Nothing else does any fsync stuff,
+      so doing it here just costs a lot.
 
   [ Stephen Gran ]
   * Fix deprecation warnings for sha module by using hashlib module instead
@@ -56,7 +58,7 @@ userdir-ldap (0.3.80) UNRELEASED; urgency=low
   * ud-replicate: set correct permissions for web-passwords
   * add freecdb to depends
 
- -- Peter Palfrader <weasel@debian.org>  Mon, 12 Mar 2012 15:47:13 +0100
+ -- Peter Palfrader <weasel@debian.org>  Mon, 12 Mar 2012 15:51:06 +0100
 
 userdir-ldap (0.3.79) unstable; urgency=low
 
index d78dcaa..badef2f 100755 (executable)
@@ -570,7 +570,9 @@ def GenCDB(accounts, File, key):
    Fdb = None
    try:
       OldMask = os.umask(0022)
-      Fdb = os.popen("cdbmake %s %s.tmp"%(File, File), "w")
+      # nothing else does the fsync stuff, so why do it here?
+      prefix = "/usr/bin/eatmydata " if os.path.exists('/usr/bin/eatmydata') else ''
+      Fdb = os.popen("%scdbmake %s %s.tmp"%(prefix, File, File), "w")
       os.umask(OldMask)
 
       # Write out the email address for each user