Lines Matching refs:de
46 static int proc_match(const char *name, struct proc_dir_entry *de, unsigned int len)
48 if (len < de->namelen)
50 if (len > de->namelen)
53 return memcmp(name, de->name, len);
75 struct proc_dir_entry *de = rb_entry(node,
78 int result = proc_match(name, de, len);
85 return de;
91 struct proc_dir_entry *de)
101 int result = proc_match(de->name, this, de->namelen);
113 rb_link_node(&de->subdir_node, parent, new);
114 rb_insert_color(&de->subdir_node, root);
121 struct proc_dir_entry *de = PDE(inode);
131 proc_set_user(de, inode->i_uid, inode->i_gid);
132 de->mode = inode->i_mode;
140 struct proc_dir_entry *de = PDE(inode);
141 if (de) {
142 nlink_t nlink = READ_ONCE(de->nlink);
165 struct proc_dir_entry *de;
167 de = *ret;
168 if (!de)
169 de = &proc_root;
176 de = pde_subdir_find(de, cp, next - cp);
177 if (!de) {
184 *ret = de;
250 struct proc_dir_entry *de)
255 de = pde_subdir_find(de, dentry->d_name.name, dentry->d_name.len);
256 if (de) {
257 pde_get(de);
259 inode = proc_get_inode(dir->i_sb, de);
262 d_set_d_op(dentry, de->proc_dops);
290 struct proc_dir_entry *de)
299 de = pde_subdir_first(de);
301 if (!de) {
307 de = pde_subdir_next(de);
313 pde_get(de);
315 if (!dir_emit(ctx, de->name, de->namelen,
316 de->low_ino, de->mode >> 12)) {
317 pde_put(de);
322 next = pde_subdir_next(de);
323 pde_put(de);
324 de = next;
325 } while (de);
597 struct proc_dir_entry *de = PDE(inode);
599 if (de->state_size)
600 return seq_open_private(file, de->seq_ops, de->state_size);
601 return seq_open(file, de->seq_ops);
606 struct proc_dir_entry *de = PDE(inode);
608 if (de->state_size)
639 struct proc_dir_entry *de = PDE(inode);
641 return single_open(file, de->single_show, de->data);
667 void proc_set_size(struct proc_dir_entry *de, loff_t size)
669 de->size = size;
673 void proc_set_user(struct proc_dir_entry *de, kuid_t uid, kgid_t gid)
675 de->uid = uid;
676 de->gid = gid;
693 struct proc_dir_entry *de = NULL;
704 de = pde_subdir_find(parent, fn, len);
705 if (de) {
706 if (unlikely(pde_is_permanent(de))) {
707 WARN(1, "removing permanent /proc entry '%s'", de->name);
708 de = NULL;
710 rb_erase(&de->subdir_node, &parent->subdir);
711 if (S_ISDIR(de->mode))
716 if (!de) {
721 proc_entry_rundown(de);
723 WARN(pde_subdir_first(de),
725 __func__, de->parent->name, de->name, pde_subdir_first(de)->name);
726 pde_put(de);
732 struct proc_dir_entry *root = NULL, *de, *next;
756 de = root;
758 next = pde_subdir_first(de);
766 rb_erase(&next->subdir_node, &de->subdir);
767 de = next;
770 next = de->parent;
771 if (S_ISDIR(de->mode))
775 proc_entry_rundown(de);
776 if (de == root)
778 pde_put(de);
781 de = next;
790 struct proc_dir_entry *de = PDE(inode);
791 return de->parent->data;
795 void proc_remove(struct proc_dir_entry *de)
797 if (de)
798 remove_proc_subtree(de->name, de->parent);