summaryrefslogtreecommitdiffstats
path: root/source/locking/locking.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/locking/locking.c')
-rw-r--r--source/locking/locking.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/source/locking/locking.c b/source/locking/locking.c
index 5824287e913..fa642a14887 100644
--- a/source/locking/locking.c
+++ b/source/locking/locking.c
@@ -217,11 +217,15 @@ void locking_close_file(files_struct *fsp)
/****************************************************************************
Initialise the locking functions.
****************************************************************************/
+
+static int open_read_only;
+
BOOL locking_init(int read_only)
{
brl_init(read_only);
- if (tdb) return True;
+ if (tdb)
+ return True;
tdb = tdb_open(lock_path("locking.tdb"),
0, TDB_CLEAR_IF_FIRST,
@@ -236,6 +240,8 @@ BOOL locking_init(int read_only)
if (!posix_locking_init(read_only))
return False;
+ open_read_only = read_only;
+
return True;
}
@@ -244,7 +250,9 @@ BOOL locking_init(int read_only)
******************************************************************/
BOOL locking_end(void)
{
- if (tdb && tdb_close(tdb) != 0) return False;
+ brl_shutdown(open_read_only);
+ if (tdb && tdb_close(tdb) != 0)
+ return False;
return True;
}