X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Falock.c;h=d469d3b56fcd1dd18ad207f689536b54ba8c3e2c;hb=24db207196a453a4f9acdce08593c7e0ed53ce4c;hp=83e0fbd37f1f779dd0069f6ac14da19aab333ee0;hpb=cc260ed6a013bfcbe3a8157f272370984ab0819e;p=openldap
diff --git a/servers/slapd/alock.c b/servers/slapd/alock.c
index 83e0fbd37f..d469d3b56f 100644
--- a/servers/slapd/alock.c
+++ b/servers/slapd/alock.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software .
*
- * Copyright 2005-2006 The OpenLDAP Foundation.
+ * Copyright 2005-2007 The OpenLDAP Foundation.
* Portions Copyright 2004-2005 Symas Corporation.
* All rights reserved.
*
@@ -32,7 +32,9 @@
#include
#include
#include
+#ifdef HAVE_SYS_FILE_H
#include
+#endif
#include
#ifdef _WIN32
@@ -514,7 +516,7 @@ alock_scan ( alock_info_t * info )
}
int
-alock_close ( alock_info_t * info )
+alock_close ( alock_info_t * info, int nosave )
{
alock_slot_t slot_data;
int res;
@@ -538,7 +540,9 @@ alock_close ( alock_info_t * info )
free (slot_data.al_appname);
return ALOCK_UNSTABLE;
}
- slot_data.al_lock = ALOCK_UNLOCKED | (slot_data.al_lock & ALOCK_NOSAVE);
+ slot_data.al_lock = ALOCK_UNLOCKED;
+ if ( nosave )
+ slot_data.al_lock |= ALOCK_NOSAVE;
res = alock_write_slot (info, &slot_data);
if (res == -1) {
close (info->al_fd);