Lines Matching refs:pde

66 	ei->pde = NULL;  in proc_alloc_inode()
127 static inline int use_pde(struct proc_dir_entry *pde) in use_pde() argument
129 return atomic_inc_unless_negative(&pde->in_use); in use_pde()
132 static void unuse_pde(struct proc_dir_entry *pde) in unuse_pde() argument
134 if (atomic_dec_return(&pde->in_use) == BIAS) in unuse_pde()
135 complete(pde->pde_unload_completion); in unuse_pde()
139 static void close_pdeo(struct proc_dir_entry *pde, struct pde_opener *pdeo) in close_pdeo() argument
145 spin_unlock(&pde->pde_unload_lock); in close_pdeo()
147 spin_lock(&pde->pde_unload_lock); in close_pdeo()
151 spin_unlock(&pde->pde_unload_lock); in close_pdeo()
153 pde->proc_fops->release(file_inode(file), file); in close_pdeo()
154 spin_lock(&pde->pde_unload_lock); in close_pdeo()
181 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_llseek() local
183 if (use_pde(pde)) { in proc_reg_llseek()
185 llseek = pde->proc_fops->llseek; in proc_reg_llseek()
189 unuse_pde(pde); in proc_reg_llseek()
197 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_read() local
199 if (use_pde(pde)) { in proc_reg_read()
200 read = pde->proc_fops->read; in proc_reg_read()
203 unuse_pde(pde); in proc_reg_read()
211 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_write() local
213 if (use_pde(pde)) { in proc_reg_write()
214 write = pde->proc_fops->write; in proc_reg_write()
217 unuse_pde(pde); in proc_reg_write()
224 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_poll() local
227 if (use_pde(pde)) { in proc_reg_poll()
228 poll = pde->proc_fops->poll; in proc_reg_poll()
231 unuse_pde(pde); in proc_reg_poll()
238 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_unlocked_ioctl() local
241 if (use_pde(pde)) { in proc_reg_unlocked_ioctl()
242 ioctl = pde->proc_fops->unlocked_ioctl; in proc_reg_unlocked_ioctl()
245 unuse_pde(pde); in proc_reg_unlocked_ioctl()
253 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_compat_ioctl() local
256 if (use_pde(pde)) { in proc_reg_compat_ioctl()
257 compat_ioctl = pde->proc_fops->compat_ioctl; in proc_reg_compat_ioctl()
260 unuse_pde(pde); in proc_reg_compat_ioctl()
268 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_mmap() local
271 if (use_pde(pde)) { in proc_reg_mmap()
272 mmap = pde->proc_fops->mmap; in proc_reg_mmap()
275 unuse_pde(pde); in proc_reg_mmap()
285 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_get_unmapped_area() local
288 if (use_pde(pde)) { in proc_reg_get_unmapped_area()
291 get_area = pde->proc_fops->get_unmapped_area; in proc_reg_get_unmapped_area()
301 unuse_pde(pde); in proc_reg_get_unmapped_area()
308 struct proc_dir_entry *pde = PDE(inode); in proc_reg_open() local
328 if (!use_pde(pde)) { in proc_reg_open()
332 open = pde->proc_fops->open; in proc_reg_open()
333 release = pde->proc_fops->release; in proc_reg_open()
342 spin_lock(&pde->pde_unload_lock); in proc_reg_open()
343 list_add(&pdeo->lh, &pde->pde_openers); in proc_reg_open()
344 spin_unlock(&pde->pde_unload_lock); in proc_reg_open()
348 unuse_pde(pde); in proc_reg_open()
354 struct proc_dir_entry *pde = PDE(inode); in proc_reg_release() local
356 spin_lock(&pde->pde_unload_lock); in proc_reg_release()
357 list_for_each_entry(pdeo, &pde->pde_openers, lh) { in proc_reg_release()
359 close_pdeo(pde, pdeo); in proc_reg_release()
363 spin_unlock(&pde->pde_unload_lock); in proc_reg_release()
398 struct proc_dir_entry *pde = PDE(d_inode(dentry)); in proc_follow_link() local
399 if (unlikely(!use_pde(pde))) in proc_follow_link()
401 *cookie = pde; in proc_follow_link()
402 return pde->data; in proc_follow_link()
423 PROC_I(inode)->pde = de; in proc_get_inode()