diff options
author | Andrew Bartlett <abartlet@samba.org> | 2008-01-22 10:53:14 +1100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2008-01-22 10:53:14 +1100 |
commit | 11061499e182b9c41ec793d4eefb8a2cf7c88bfe (patch) | |
tree | fa08fcbf21143655eb85ba79c6169b3b2eb24fdd /source4/lib/tdb/common/open.c | |
parent | 27b3c24040b1a7aa88413c477a3769bcd6847d72 (diff) | |
parent | 24efc9fc36194d379838eb9911b65e93535da19b (diff) | |
download | samba-11061499e182b9c41ec793d4eefb8a2cf7c88bfe.tar.gz samba-11061499e182b9c41ec793d4eefb8a2cf7c88bfe.tar.bz2 samba-11061499e182b9c41ec793d4eefb8a2cf7c88bfe.zip |
Merge branch 'v4-0-test' of git://git.samba.org/samba into 4-0-abartlet
(This used to be commit 74220ca244865f97825cabdbc8aa899e71c25c7d)
Diffstat (limited to 'source4/lib/tdb/common/open.c')
-rw-r--r-- | source4/lib/tdb/common/open.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/source4/lib/tdb/common/open.c b/source4/lib/tdb/common/open.c index 6bd8fda2bf..b19e4cea29 100644 --- a/source4/lib/tdb/common/open.c +++ b/source4/lib/tdb/common/open.c @@ -179,9 +179,7 @@ struct tdb_context *tdb_open_ex(const char *name, int hash_size, int tdb_flags, tdb->page_size = 0x2000; } - if (open_flags & TDB_VOLATILE) { - tdb->max_dead_records = 5; - } + tdb->max_dead_records = (tdb_flags & TDB_VOLATILE) ? 5 : 0; if ((open_flags & O_ACCMODE) == O_WRONLY) { TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_open_ex: can't open tdb %s write-only\n", @@ -229,6 +227,7 @@ struct tdb_context *tdb_open_ex(const char *name, int hash_size, int tdb_flags, /* we need to zero database if we are the only one with it open */ if ((tdb_flags & TDB_CLEAR_IF_FIRST) && + (!tdb->read_only) && (locked = (tdb->methods->tdb_brlock(tdb, ACTIVE_LOCK, F_WRLCK, F_SETLK, 0, 1) == 0))) { open_flags |= O_CREAT; if (ftruncate(tdb->fd, 0) == -1) { @@ -288,7 +287,6 @@ struct tdb_context *tdb_open_ex(const char *name, int hash_size, int tdb_flags, tdb->map_size = st.st_size; tdb->device = st.st_dev; tdb->inode = st.st_ino; - tdb->max_dead_records = 0; tdb_mmap(tdb); if (locked) { if (tdb->methods->tdb_brlock(tdb, ACTIVE_LOCK, F_UNLCK, F_SETLK, 0, 1) == -1) { |