From 550246bb457561fb8bffe909c54467090a11011a Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Mon, 13 Sep 2010 17:23:29 +0930 Subject: [PATCH] tdb: support tdb_check() on r/o databases. (Imported from SAMBA commit bc1c82ea137e1bf6cb55139a666c56ebb2226b23) Author: Jeremy Allison Date: Wed Jul 28 05:15:40 2010 -0700 Fix tdb_check() to work with read-only tdb databases. The function tdb_lockall() uses F_WRLCK internally, which doesn't work on a fd opened with O_RDONLY. Use tdb_lockall_read() instead. Jeremy. --- ccan/tdb/check.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ccan/tdb/check.c b/ccan/tdb/check.c index b3b8c231..c5469e99 100644 --- a/ccan/tdb/check.c +++ b/ccan/tdb/check.c @@ -328,7 +328,7 @@ int tdb_check(struct tdb_context *tdb, bool found_recovery = false; tdb_len_t dead; - if (tdb_lockall(tdb) == -1) + if (tdb_lockall_read(tdb) == -1) return -1; /* Make sure we know true size of the underlying file. */ @@ -444,12 +444,12 @@ int tdb_check(struct tdb_context *tdb, } free(hashes); - tdb_unlockall(tdb); + tdb_unlockall_read(tdb); return 0; free: free(hashes); unlock: - tdb_unlockall(tdb); + tdb_unlockall_read(tdb); return -1; } -- 2.39.2