svn commit: samba r10891 - in
branches/SAMBA_4_0/source/lib/tdb/common: .
tridge at samba.org
tridge at samba.org
Tue Oct 11 05:01:52 GMT 2005
Author: tridge
Date: 2005-10-11 05:01:52 +0000 (Tue, 11 Oct 2005)
New Revision: 10891
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=10891
Log:
I noticed that the secrets.db was not being backed up on my system due
to msync/mmap not changing the mtime of the file. This patch ensures
that for successfully completed transactions we update the mtime.
I don't do this on all tdb writes as its too expensive, but doing it
just on transactions is bearable, as those cost quite a lot anyway.
Modified:
branches/SAMBA_4_0/source/lib/tdb/common/transaction.c
Changeset:
Modified: branches/SAMBA_4_0/source/lib/tdb/common/transaction.c
===================================================================
--- branches/SAMBA_4_0/source/lib/tdb/common/transaction.c 2005-10-11 04:43:44 UTC (rev 10890)
+++ branches/SAMBA_4_0/source/lib/tdb/common/transaction.c 2005-10-11 05:01:52 UTC (rev 10891)
@@ -857,6 +857,15 @@
tdb_brlock_len(tdb, GLOBAL_LOCK, F_UNLCK, F_SETLKW, 0, 1);
+ /* on some systems (like Linux 2.6.x) changes via mmap/msync
+ don't change the mtime of the file, this means the file may
+ not be backed up (as tdb rounding to block sizes means that
+ file size changes are quite rare too). The following forces
+ mtime changes when a transaction completes */
+#ifdef HAVE_UTIME
+ utime(tdb->name, NULL);
+#endif
+
/* use a transaction cancel to free memory and remove the
transaction locks */
tdb_transaction_cancel(tdb);
More information about the samba-cvs
mailing list