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);
122 struct proc_dir_entry *de = PDE(inode);
131 proc_set_user(de, inode->i_uid, inode->i_gid);
132 de->mode = inode->i_mode;
141 struct proc_dir_entry *de = PDE(inode);
142 if (de) {
143 nlink_t nlink = READ_ONCE(de->nlink);
166 struct proc_dir_entry *de;
168 de = *ret ?: &proc_root;
170 de = pde_subdir_find(de, cp, next - cp);
171 if (!de) {
178 *ret = de;
244 struct proc_dir_entry *de)
249 de = pde_subdir_find(de, dentry->d_name.name, dentry->d_name.len);
250 if (de) {
251 pde_get(de);
253 inode = proc_get_inode(dir->i_sb, de);
256 d_set_d_op(dentry, de->proc_dops);
284 struct proc_dir_entry *de)
293 de = pde_subdir_first(de);
295 if (!de) {
301 de = pde_subdir_next(de);
307 pde_get(de);
309 if (!dir_emit(ctx, de->name, de->namelen,
310 de->low_ino, de->mode >> 12)) {
311 pde_put(de);
316 next = pde_subdir_next(de);
317 pde_put(de);
318 de = next;
319 } while (de);
591 struct proc_dir_entry *de = PDE(inode);
593 if (de->state_size)
594 return seq_open_private(file, de->seq_ops, de->state_size);
595 return seq_open(file, de->seq_ops);
600 struct proc_dir_entry *de = PDE(inode);
602 if (de->state_size)
633 struct proc_dir_entry *de = PDE(inode);
635 return single_open(file, de->single_show, de->data);
661 void proc_set_size(struct proc_dir_entry *de, loff_t size)
663 de->size = size;
667 void proc_set_user(struct proc_dir_entry *de, kuid_t uid, kgid_t gid)
669 de->uid = uid;
670 de->gid = gid;
687 struct proc_dir_entry *de = NULL;
698 de = pde_subdir_find(parent, fn, len);
699 if (de) {
700 if (unlikely(pde_is_permanent(de))) {
701 WARN(1, "removing permanent /proc entry '%s'", de->name);
702 de = NULL;
704 rb_erase(&de->subdir_node, &parent->subdir);
705 if (S_ISDIR(de->mode))
710 if (!de) {
715 proc_entry_rundown(de);
717 WARN(pde_subdir_first(de),
719 __func__, de->parent->name, de->name, pde_subdir_first(de)->name);
720 pde_put(de);
726 struct proc_dir_entry *root = NULL, *de, *next;
750 de = root;
752 next = pde_subdir_first(de);
760 rb_erase(&next->subdir_node, &de->subdir);
761 de = next;
764 next = de->parent;
765 if (S_ISDIR(de->mode))
769 proc_entry_rundown(de);
770 if (de == root)
772 pde_put(de);
775 de = next;
784 struct proc_dir_entry *de = PDE(inode);
785 return de->parent->data;
789 void proc_remove(struct proc_dir_entry *de)
791 if (de)
792 remove_proc_subtree(de->name, de->parent);