Lines Matching defs:domain
132 struct tomoyo_domain_info *domain =
133 container_of(element, typeof(*domain), list);
138 * we need to recheck domain->users at this point.
141 * (2) Reader traverses tomoyo_domain_list and finds this domain.
142 * (3) Writer marks this domain as deleted.
143 * (4) Garbage collector removes this domain from tomoyo_domain_list
144 * because this domain is marked as deleted and used by nobody.
145 * (5) Reader saves reference to this domain into
150 * (8) Garbage collector kfree() this domain because this domain is
152 * (9) Reader finishes execve() operation and restores this domain from
155 * By updating domain->users at (5), we can solve this race problem
156 * by rechecking domain->users at (8).
158 if (atomic_read(&domain->users))
160 list_for_each_entry_safe(acl, tmp, &domain->acl_info_list, list) {
164 tomoyo_put_name(domain->domainname);
207 static bool tomoyo_collect_acl(struct tomoyo_domain_info *domain)
210 list_for_each_entry(acl, &domain->acl_info_list, list) {
229 struct tomoyo_domain_info *domain;
230 list_for_each_entry_rcu(domain, &tomoyo_domain_list, list) {
231 if (!tomoyo_collect_acl(domain))
233 if (!domain->is_deleted || atomic_read(&domain->users))
236 * Nobody is referring this domain. But somebody may
237 * refer this domain after successful execve().
238 * We recheck domain->users after SRCU synchronization.
240 if (!tomoyo_add_to_gc(TOMOYO_ID_DOMAIN, &domain->list))