summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2001-05-04 22:20:25 +0000
committerJeremy Allison <jra@samba.org>2001-05-04 22:20:25 +0000
commit1a5b6c7ec7448019701f7522dea0ccd970d26f71 (patch)
tree1a1c309524df2867bbddb0538784dad9277ca16d
parentf3cb6163f6468d79486848419fe016ba0cae9a2a (diff)
downloadsamba-1a5b6c7ec7448019701f7522dea0ccd970d26f71.tar.gz
samba-1a5b6c7ec7448019701f7522dea0ccd970d26f71.tar.xz
samba-1a5b6c7ec7448019701f7522dea0ccd970d26f71.zip
After talking to Andrew, don't fail deliberately if the mmap fails, we need
to fall back to read/write. Jeremy.
-rw-r--r--source/tdb/tdb.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/source/tdb/tdb.c b/source/tdb/tdb.c
index bf94e4cbd3f..e4f6325dc41 100644
--- a/source/tdb/tdb.c
+++ b/source/tdb/tdb.c
@@ -429,7 +429,6 @@ static int tdb_expand(TDB_CONTEXT *tdb, tdb_off size)
struct list_struct rec;
tdb_off offset;
char b = 0;
- void *old_map_ptr;
if (tdb_lock(tdb, -1, F_WRLCK) == -1) return 0;
@@ -440,8 +439,6 @@ static int tdb_expand(TDB_CONTEXT *tdb, tdb_off size)
the database up to a multiple of TDB_PAGE_SIZE */
size = TDB_ALIGN(tdb->map_size + size*10, TDB_PAGE_SIZE) - tdb->map_size;
- old_map_ptr = tdb->map_ptr;
-
if (!(tdb->flags & TDB_INTERNAL) && tdb->map_ptr)
tdb->map_ptr = tdb_munmap(tdb->map_ptr, tdb->map_size);
@@ -472,9 +469,8 @@ static int tdb_expand(TDB_CONTEXT *tdb, tdb_off size)
if (!(tdb->flags & TDB_NOMMAP)) {
tdb->map_ptr = tdb_mmap(tdb->map_size, 0, tdb->fd);
- /* if old_map_ptr was != NULL but the new one is, we have an error. */
- if (old_map_ptr && (tdb->map_ptr == NULL))
- goto fail;
+ /* We're ok if this fails and returns NULL, as we'll
+ fallback to read/write here. */
}
/* form a new freelist record */