diff options
author | Jeremy Allison <jra@samba.org> | 2001-05-04 22:20:25 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2001-05-04 22:20:25 +0000 |
commit | 1a5b6c7ec7448019701f7522dea0ccd970d26f71 (patch) | |
tree | 1a1c309524df2867bbddb0538784dad9277ca16d | |
parent | f3cb6163f6468d79486848419fe016ba0cae9a2a (diff) | |
download | samba-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.c | 8 |
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 */ |