Lines Matching refs:parent
105 struct audit_parent *parent; in audit_free_parent() local
107 parent = container_of(i_watch, struct audit_parent, wdata); in audit_free_parent()
108 WARN_ON(!list_empty(&parent->watches)); in audit_free_parent()
109 kfree(parent); in audit_free_parent()
120 WARN_ON(watch->parent); in audit_put_watch()
130 put_inotify_watch(&watch->parent->wdata); in audit_remove_watch()
131 watch->parent = NULL; in audit_remove_watch()
162 struct audit_parent *parent; in audit_init_parent() local
165 parent = kzalloc(sizeof(*parent), GFP_KERNEL); in audit_init_parent()
166 if (unlikely(!parent)) in audit_init_parent()
169 INIT_LIST_HEAD(&parent->watches); in audit_init_parent()
170 parent->flags = 0; in audit_init_parent()
172 inotify_init_watch(&parent->wdata); in audit_init_parent()
174 get_inotify_watch(&parent->wdata); in audit_init_parent()
175 wd = inotify_add_watch(audit_ih, &parent->wdata, in audit_init_parent()
178 audit_free_parent(&parent->wdata); in audit_init_parent()
182 return parent; in audit_init_parent()
866 get_inotify_watch(&old->parent->wdata); in audit_dupe_watch()
867 new->parent = old->parent; in audit_dupe_watch()
981 static void audit_update_watch(struct audit_parent *parent, in audit_update_watch() argument
990 list_for_each_entry_safe(owatch, nextw, &parent->watches, wlist) { in audit_update_watch()
1051 list_add(&nwatch->wlist, &parent->watches); in audit_update_watch()
1057 static void audit_remove_parent_watches(struct audit_parent *parent) in audit_remove_parent_watches() argument
1064 parent->flags |= AUDIT_PARENT_INVALID; in audit_remove_parent_watches()
1065 list_for_each_entry_safe(w, nextw, &parent->watches, wlist) { in audit_remove_parent_watches()
1200 struct audit_parent *parent) in audit_add_to_parent() argument
1205 list_for_each_entry(w, &parent->watches, wlist) { in audit_add_to_parent()
1221 get_inotify_watch(&parent->wdata); in audit_add_to_parent()
1222 watch->parent = parent; in audit_add_to_parent()
1224 list_add(&watch->wlist, &parent->watches); in audit_add_to_parent()
1236 struct audit_parent *parent; in audit_add_watch() local
1254 parent = audit_init_parent(ndp); in audit_add_watch()
1255 if (IS_ERR(parent)) { in audit_add_watch()
1258 return PTR_ERR(parent); in audit_add_watch()
1261 parent = container_of(i_watch, struct audit_parent, wdata); in audit_add_watch()
1266 if (parent->flags & AUDIT_PARENT_INVALID) in audit_add_watch()
1269 audit_add_to_parent(krule, parent); in audit_add_watch()
1272 put_inotify_watch(&parent->wdata); in audit_add_watch()
1399 struct audit_parent *parent = watch->parent; in audit_del_rule() local
1406 if (list_empty(&parent->watches)) { in audit_del_rule()
1415 if (pin_inotify_watch(&parent->wdata)) in audit_del_rule()
1416 list_add(&parent->ilist, &inotify_list); in audit_del_rule()
1837 struct audit_parent *parent; in audit_handle_ievent() local
1839 parent = container_of(i_watch, struct audit_parent, wdata); in audit_handle_ievent()
1842 audit_update_watch(parent, dname, inode->i_sb->s_dev, in audit_handle_ievent()
1845 audit_update_watch(parent, dname, (dev_t)-1, (unsigned long)-1, 1); in audit_handle_ievent()
1848 audit_remove_parent_watches(parent); in audit_handle_ievent()
1851 audit_remove_parent_watches(parent); in audit_handle_ievent()