Lines Matching refs:de
31 static int proc_match(unsigned int len, const char *name, struct proc_dir_entry *de) in proc_match() argument
33 if (len < de->namelen) in proc_match()
35 if (len > de->namelen) in proc_match()
38 return memcmp(name, de->name, len); in proc_match()
60 struct proc_dir_entry *de = container_of(node, in pde_subdir_find() local
63 int result = proc_match(len, name, de); in pde_subdir_find()
70 return de; in pde_subdir_find()
76 struct proc_dir_entry *de) in pde_subdir_insert() argument
85 int result = proc_match(de->namelen, de->name, this); in pde_subdir_insert()
97 rb_link_node(&de->subdir_node, parent, new); in pde_subdir_insert()
98 rb_insert_color(&de->subdir_node, root); in pde_subdir_insert()
105 struct proc_dir_entry *de = PDE(inode); in proc_notify_change() local
115 proc_set_user(de, inode->i_uid, inode->i_gid); in proc_notify_change()
116 de->mode = inode->i_mode; in proc_notify_change()
124 struct proc_dir_entry *de = PDE(inode); in proc_getattr() local
125 if (de && de->nlink) in proc_getattr()
126 set_nlink(inode, de->nlink); in proc_getattr()
145 struct proc_dir_entry *de; in __xlate_proc_name() local
148 de = *ret; in __xlate_proc_name()
149 if (!de) in __xlate_proc_name()
150 de = &proc_root; in __xlate_proc_name()
158 de = pde_subdir_find(de, cp, len); in __xlate_proc_name()
159 if (!de) { in __xlate_proc_name()
166 *ret = de; in __xlate_proc_name()
229 struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *dir, in proc_lookup_de() argument
235 de = pde_subdir_find(de, dentry->d_name.name, dentry->d_name.len); in proc_lookup_de()
236 if (de) { in proc_lookup_de()
237 pde_get(de); in proc_lookup_de()
239 inode = proc_get_inode(dir->i_sb, de); in proc_lookup_de()
265 int proc_readdir_de(struct proc_dir_entry *de, struct file *file, in proc_readdir_de() argument
274 de = pde_subdir_first(de); in proc_readdir_de()
277 if (!de) { in proc_readdir_de()
283 de = pde_subdir_next(de); in proc_readdir_de()
289 pde_get(de); in proc_readdir_de()
291 if (!dir_emit(ctx, de->name, de->namelen, in proc_readdir_de()
292 de->low_ino, de->mode >> 12)) { in proc_readdir_de()
293 pde_put(de); in proc_readdir_de()
298 next = pde_subdir_next(de); in proc_readdir_de()
299 pde_put(de); in proc_readdir_de()
300 de = next; in proc_readdir_de()
301 } while (de); in proc_readdir_de()
515 void proc_set_size(struct proc_dir_entry *de, loff_t size) in proc_set_size() argument
517 de->size = size; in proc_set_size()
521 void proc_set_user(struct proc_dir_entry *de, kuid_t uid, kgid_t gid) in proc_set_user() argument
523 de->uid = uid; in proc_set_user()
524 de->gid = gid; in proc_set_user()
528 static void free_proc_entry(struct proc_dir_entry *de) in free_proc_entry() argument
530 proc_free_inum(de->low_ino); in free_proc_entry()
532 if (S_ISLNK(de->mode)) in free_proc_entry()
533 kfree(de->data); in free_proc_entry()
534 kfree(de); in free_proc_entry()
548 struct proc_dir_entry *de = NULL; in remove_proc_entry() local
559 de = pde_subdir_find(parent, fn, len); in remove_proc_entry()
560 if (de) in remove_proc_entry()
561 rb_erase(&de->subdir_node, &parent->subdir); in remove_proc_entry()
563 if (!de) { in remove_proc_entry()
568 proc_entry_rundown(de); in remove_proc_entry()
570 if (S_ISDIR(de->mode)) in remove_proc_entry()
572 de->nlink = 0; in remove_proc_entry()
573 WARN(pde_subdir_first(de), in remove_proc_entry()
575 __func__, de->parent->name, de->name, pde_subdir_first(de)->name); in remove_proc_entry()
576 pde_put(de); in remove_proc_entry()
582 struct proc_dir_entry *root = NULL, *de, *next; in remove_proc_subtree() local
600 de = root; in remove_proc_subtree()
602 next = pde_subdir_first(de); in remove_proc_subtree()
604 rb_erase(&next->subdir_node, &de->subdir); in remove_proc_subtree()
605 de = next; in remove_proc_subtree()
610 proc_entry_rundown(de); in remove_proc_subtree()
611 next = de->parent; in remove_proc_subtree()
612 if (S_ISDIR(de->mode)) in remove_proc_subtree()
614 de->nlink = 0; in remove_proc_subtree()
615 if (de == root) in remove_proc_subtree()
617 pde_put(de); in remove_proc_subtree()
620 de = next; in remove_proc_subtree()
629 struct proc_dir_entry *de = PDE(inode); in proc_get_parent_data() local
630 return de->parent->data; in proc_get_parent_data()
634 void proc_remove(struct proc_dir_entry *de) in proc_remove() argument
636 if (de) in proc_remove()
637 remove_proc_subtree(de->name, de->parent); in proc_remove()