From 2cf3f7c07499f565101e1bcb835c73fc297ea72e Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 14 Sep 2011 07:14:13 +0930 Subject: tdb2: save open_flags instead of mmap_flags. It's more consistent with what tdb1 does, and slightly more encapsulated. Signed-off-by: Rusty Russell (Imported from CCAN commit 6b7c3c840eafbec211b9f58751c5ff754302a68e) --- lib/tdb2/io.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'lib/tdb2/io.c') diff --git a/lib/tdb2/io.c b/lib/tdb2/io.c index 4166cd4c67..d422d96326 100644 --- a/lib/tdb2/io.c +++ b/lib/tdb2/io.c @@ -42,16 +42,23 @@ void tdb_munmap(struct tdb_file *file) void tdb_mmap(struct tdb_context *tdb) { + int mmap_flags; + if (tdb->flags & TDB_INTERNAL) return; if (tdb->flags & TDB_NOMMAP) return; + if ((tdb->open_flags & O_ACCMODE) == O_RDONLY) + mmap_flags = PROT_READ; + else + mmap_flags = PROT_READ | PROT_WRITE; + /* size_t can be smaller than off_t. */ if ((size_t)tdb->file->map_size == tdb->file->map_size) { tdb->file->map_ptr = mmap(NULL, tdb->file->map_size, - tdb->mmap_flags, + mmap_flags, MAP_SHARED, tdb->file->fd, 0); } else tdb->file->map_ptr = MAP_FAILED; -- cgit