summaryrefslogtreecommitdiffstats
path: root/src/backend.h
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin@dahyabhai.net>2013-09-19 11:51:41 -0400
committerNalin Dahyabhai <nalin@dahyabhai.net>2013-09-19 11:51:41 -0400
commit0e560c77761e581c7bcfeb728f28ba1045ff1597 (patch)
tree54447145e520b483f261d22712f0f03ece6af100 /src/backend.h
parentabed694a1856101a80eee1575eb5c8b96e7c8fca (diff)
downloadslapi-nis-0e560c77761e581c7bcfeb728f28ba1045ff1597.tar.gz
slapi-nis-0e560c77761e581c7bcfeb728f28ba1045ff1597.tar.xz
slapi-nis-0e560c77761e581c7bcfeb728f28ba1045ff1597.zip
Add ignore-subtree and restrict-subtree settings
Add {nis,schema-compat}-ignore-subtree (subtrees under which we ignore contents and updates )and {nis,schema-compat}-restrict-subtree (subtrees out of which we ignore contents and updates, if set) settings, and default the former to "cn=tasks,cn=config". This should avoid cases where we're looking through the ldbm backend for entries which have a dangling reference to a newly-added task (which, because it's in the DSE, means we acquire an ldbm lock after acquiring our internal lock) while also updating a compat entry after its source entry is modified (for example, by the memberOf plugin, which results in us attempting to acquire our lock while the ldbm lock is already held).
Diffstat (limited to 'src/backend.h')
-rw-r--r--src/backend.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/backend.h b/src/backend.h
index 8c00dd4..7974aae 100644
--- a/src/backend.h
+++ b/src/backend.h
@@ -46,10 +46,12 @@ struct backend_shr_set_data {
/* Configuration flag indicating whether or not we try to skip
* recomputing data in this map. */
unsigned int skip_uninteresting_updates:1;
- /* Subtrees under which all of the contents that we care about will be
- * stored. Other locaoins will be silently ignored. */
- const struct slapi_dn **relevant_subtrees;
- /* Subtrees under which we ignore contents. */
+ /* Subtrees under which all of the contents that we care about, and
+ * anything that refers to content that we care about, will be stored.
+ * Other locations will be silently ignored if this list contains any
+ * values. */
+ const struct slapi_dn **restrict_subtrees;
+ /* Subtrees under which we ignore contents and updates. */
const struct slapi_dn **ignore_subtrees;
struct backend_set_data *self;
};