summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2010-07-28 05:15:40 -0700
committerRusty Russell <rusty@rustcorp.com.au>2010-07-29 08:56:35 +0930
commitbc1c82ea137e1bf6cb55139a666c56ebb2226b23 (patch)
tree3ad9b5c8b2b69302ef01cd2d80d4acf325563f6e /lib
parent39d287ec67d9c33b17c8809ac34d3c09f72f689d (diff)
downloadsamba-bc1c82ea137e1bf6cb55139a666c56ebb2226b23.tar.gz
samba-bc1c82ea137e1bf6cb55139a666c56ebb2226b23.tar.xz
samba-bc1c82ea137e1bf6cb55139a666c56ebb2226b23.zip
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.
Diffstat (limited to 'lib')
-rw-r--r--lib/tdb/common/check.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/tdb/common/check.c b/lib/tdb/common/check.c
index 6bbfd7d82ac..2c640434ee4 100644
--- a/lib/tdb/common/check.c
+++ b/lib/tdb/common/check.c
@@ -311,7 +311,7 @@ int tdb_check(struct tdb_context *tdb,
struct tdb_record rec;
bool found_recovery = false;
- if (tdb_lockall(tdb) == -1)
+ if (tdb_lockall_read(tdb) == -1)
return -1;
/* Make sure we know true size of the underlying file. */
@@ -412,12 +412,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;
}