diff options
author | Nalin Dahyabhai <nalin@dahyabhai.net> | 2013-09-19 11:51:41 -0400 |
---|---|---|
committer | Nalin Dahyabhai <nalin@dahyabhai.net> | 2013-09-19 11:51:41 -0400 |
commit | 0e560c77761e581c7bcfeb728f28ba1045ff1597 (patch) | |
tree | 54447145e520b483f261d22712f0f03ece6af100 /src/backend.h | |
parent | abed694a1856101a80eee1575eb5c8b96e7c8fca (diff) | |
download | slapi-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.h | 10 |
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; }; |