From 7deeacae2bab03d5e2ea2642f028a4011ce3bec3 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 19 Apr 2011 12:06:05 +0930 Subject: gencache: don't use CLEAR_IF_FIRST as fallback. CLEAR_IF_FIRST only works if *all* openers use that flag. So just truncate the file: it's racy, but that's what we're doing anyway. We'd really need a TDB_OPENCHECK_OR_CLEAR flag to do this properly (or in TDB2, a open hook at the right point). Signed-off-by: Rusty Russell --- source3/lib/gencache.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'source3/lib') diff --git a/source3/lib/gencache.c b/source3/lib/gencache.c index 7a86063de5..8d4861a176 100644 --- a/source3/lib/gencache.c +++ b/source3/lib/gencache.c @@ -81,14 +81,10 @@ again: return false; } first_try = false; - DEBUG(0, ("gencache_init: tdb_check(%s) failed - retry after CLEAR_IF_FIRST\n", + DEBUG(0, ("gencache_init: tdb_check(%s) failed - retry after truncate\n", cache_fname)); - cache = tdb_open_log(cache_fname, 0, TDB_CLEAR_IF_FIRST|TDB_INCOMPATIBLE_HASH, open_flags, 0644); - if (cache) { - tdb_close(cache); - cache = NULL; - goto again; - } + truncate(cache_fname, 0); + goto again; } } -- cgit