|
|
f92ce9 |
From 1ccde69d778878e331311839d1c5d6be0bbfad26 Mon Sep 17 00:00:00 2001
|
|
|
f92ce9 |
From: Noriko Hosoi <nhosoi@redhat.com>
|
|
|
f92ce9 |
Date: Mon, 22 Sep 2014 14:34:58 -0700
|
|
|
f92ce9 |
Subject: [PATCH 09/14] Ticket #47750 - Creating a glue fails if one above
|
|
|
f92ce9 |
level is a conflict or missing
|
|
|
f92ce9 |
|
|
|
f92ce9 |
Description: Poring changes made to 1.2.11 branch to newer versions.
|
|
|
f92ce9 |
1) Enabiling cache lock in cache_is_in_cache and cache_has_otherref.
|
|
|
f92ce9 |
2) Removing unused field new_entry_in_cache from "struct _modify_context".
|
|
|
f92ce9 |
|
|
|
f92ce9 |
(cherry picked from commit 5ae13072330e9a769a5949b2e8a91085b38ac4e1)
|
|
|
f92ce9 |
(cherry picked from commit ef766784ed7d09aa81e82316b621e8490a368dc6)
|
|
|
f92ce9 |
---
|
|
|
f92ce9 |
ldap/servers/slapd/back-ldbm/back-ldbm.h | 1 -
|
|
|
f92ce9 |
ldap/servers/slapd/back-ldbm/cache.c | 10 ++++++----
|
|
|
f92ce9 |
2 files changed, 6 insertions(+), 5 deletions(-)
|
|
|
f92ce9 |
|
|
|
f92ce9 |
diff --git a/ldap/servers/slapd/back-ldbm/back-ldbm.h b/ldap/servers/slapd/back-ldbm/back-ldbm.h
|
|
|
f92ce9 |
index 938d261..fd17453 100644
|
|
|
f92ce9 |
--- a/ldap/servers/slapd/back-ldbm/back-ldbm.h
|
|
|
f92ce9 |
+++ b/ldap/servers/slapd/back-ldbm/back-ldbm.h
|
|
|
f92ce9 |
@@ -705,7 +705,6 @@ typedef struct _import_subcount_stuff import_subcount_stuff;
|
|
|
f92ce9 |
/* Handy structures for modify operations */
|
|
|
f92ce9 |
|
|
|
f92ce9 |
struct _modify_context {
|
|
|
f92ce9 |
- int new_entry_in_cache;
|
|
|
f92ce9 |
struct backentry *old_entry;
|
|
|
f92ce9 |
struct backentry *new_entry;
|
|
|
f92ce9 |
Slapi_Mods *smods;
|
|
|
f92ce9 |
diff --git a/ldap/servers/slapd/back-ldbm/cache.c b/ldap/servers/slapd/back-ldbm/cache.c
|
|
|
f92ce9 |
index a98cf0c..4746204 100644
|
|
|
f92ce9 |
--- a/ldap/servers/slapd/back-ldbm/cache.c
|
|
|
f92ce9 |
+++ b/ldap/servers/slapd/back-ldbm/cache.c
|
|
|
f92ce9 |
@@ -1506,10 +1506,12 @@ int cache_add_tentative(struct cache *cache, struct backentry *e,
|
|
|
f92ce9 |
{
|
|
|
f92ce9 |
return entrycache_add_int(cache, e, ENTRY_STATE_CREATING, alt);
|
|
|
f92ce9 |
}
|
|
|
f92ce9 |
+
|
|
|
f92ce9 |
void cache_lock(struct cache *cache)
|
|
|
f92ce9 |
{
|
|
|
f92ce9 |
PR_EnterMonitor(cache->c_mutex);
|
|
|
f92ce9 |
}
|
|
|
f92ce9 |
+
|
|
|
f92ce9 |
void cache_unlock(struct cache *cache)
|
|
|
f92ce9 |
{
|
|
|
f92ce9 |
PR_ExitMonitor(cache->c_mutex);
|
|
|
f92ce9 |
@@ -2095,9 +2097,9 @@ cache_has_otherref(struct cache *cache, void *ptr)
|
|
|
f92ce9 |
return hasref;
|
|
|
f92ce9 |
}
|
|
|
f92ce9 |
bep = (struct backcommon *)ptr;
|
|
|
f92ce9 |
- /* slows down too much? PR_Lock(cache->c_mutex); */
|
|
|
f92ce9 |
+ cache_lock(cache);
|
|
|
f92ce9 |
hasref = bep->ep_refcnt;
|
|
|
f92ce9 |
- /* PR_Unlock(cache->c_mutex); */
|
|
|
f92ce9 |
+ cache_unlock(cache);
|
|
|
f92ce9 |
return (hasref>1)?1:0;
|
|
|
f92ce9 |
}
|
|
|
f92ce9 |
|
|
|
f92ce9 |
@@ -2111,8 +2113,8 @@ cache_is_in_cache(struct cache *cache, void *ptr)
|
|
|
f92ce9 |
return in_cache;
|
|
|
f92ce9 |
}
|
|
|
f92ce9 |
bep = (struct backcommon *)ptr;
|
|
|
f92ce9 |
- /* slows down too much? PR_Lock(cache->c_mutex); */
|
|
|
f92ce9 |
+ cache_lock(cache);
|
|
|
f92ce9 |
in_cache = (bep->ep_state & (ENTRY_STATE_DELETED|ENTRY_STATE_NOTINCACHE))?0:1;
|
|
|
f92ce9 |
- /* PR_Unlock(cache->c_mutex); */
|
|
|
f92ce9 |
+ cache_unlock(cache);
|
|
|
f92ce9 |
return in_cache;
|
|
|
f92ce9 |
}
|
|
|
f92ce9 |
--
|
|
|
f92ce9 |
1.9.3
|
|
|
f92ce9 |
|