Lines Matching refs:pde

68 	ei->pde = NULL;  in proc_alloc_inode()
129 static inline int use_pde(struct proc_dir_entry *pde) in use_pde() argument
131 return likely(atomic_inc_unless_negative(&pde->in_use)); in use_pde()
134 static void unuse_pde(struct proc_dir_entry *pde) in unuse_pde() argument
136 if (unlikely(atomic_dec_return(&pde->in_use) == BIAS)) in unuse_pde()
137 complete(pde->pde_unload_completion); in unuse_pde()
141 static void close_pdeo(struct proc_dir_entry *pde, struct pde_opener *pdeo) in close_pdeo() argument
157 spin_unlock(&pde->pde_unload_lock); in close_pdeo()
164 spin_unlock(&pde->pde_unload_lock); in close_pdeo()
166 pde->proc_fops->release(file_inode(file), file); in close_pdeo()
167 spin_lock(&pde->pde_unload_lock); in close_pdeo()
171 spin_unlock(&pde->pde_unload_lock); in close_pdeo()
200 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_llseek() local
202 if (use_pde(pde)) { in proc_reg_llseek()
205 llseek = pde->proc_fops->llseek; in proc_reg_llseek()
209 unuse_pde(pde); in proc_reg_llseek()
216 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_read() local
218 if (use_pde(pde)) { in proc_reg_read()
221 read = pde->proc_fops->read; in proc_reg_read()
224 unuse_pde(pde); in proc_reg_read()
231 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_write() local
233 if (use_pde(pde)) { in proc_reg_write()
236 write = pde->proc_fops->write; in proc_reg_write()
239 unuse_pde(pde); in proc_reg_write()
246 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_poll() local
248 if (use_pde(pde)) { in proc_reg_poll()
251 poll = pde->proc_fops->poll; in proc_reg_poll()
254 unuse_pde(pde); in proc_reg_poll()
261 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_unlocked_ioctl() local
263 if (use_pde(pde)) { in proc_reg_unlocked_ioctl()
266 ioctl = pde->proc_fops->unlocked_ioctl; in proc_reg_unlocked_ioctl()
269 unuse_pde(pde); in proc_reg_unlocked_ioctl()
277 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_compat_ioctl() local
279 if (use_pde(pde)) { in proc_reg_compat_ioctl()
282 compat_ioctl = pde->proc_fops->compat_ioctl; in proc_reg_compat_ioctl()
285 unuse_pde(pde); in proc_reg_compat_ioctl()
293 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_mmap() local
295 if (use_pde(pde)) { in proc_reg_mmap()
298 mmap = pde->proc_fops->mmap; in proc_reg_mmap()
301 unuse_pde(pde); in proc_reg_mmap()
311 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_get_unmapped_area() local
314 if (use_pde(pde)) { in proc_reg_get_unmapped_area()
317 get_area = pde->proc_fops->get_unmapped_area; in proc_reg_get_unmapped_area()
327 unuse_pde(pde); in proc_reg_get_unmapped_area()
334 struct proc_dir_entry *pde = PDE(inode); in proc_reg_open() local
351 if (!use_pde(pde)) in proc_reg_open()
354 release = pde->proc_fops->release; in proc_reg_open()
363 open = pde->proc_fops->open; in proc_reg_open()
373 spin_lock(&pde->pde_unload_lock); in proc_reg_open()
374 list_add(&pdeo->lh, &pde->pde_openers); in proc_reg_open()
375 spin_unlock(&pde->pde_unload_lock); in proc_reg_open()
381 unuse_pde(pde); in proc_reg_open()
387 struct proc_dir_entry *pde = PDE(inode); in proc_reg_release() local
389 spin_lock(&pde->pde_unload_lock); in proc_reg_release()
390 list_for_each_entry(pdeo, &pde->pde_openers, lh) { in proc_reg_release()
392 close_pdeo(pde, pdeo); in proc_reg_release()
396 spin_unlock(&pde->pde_unload_lock); in proc_reg_release()
438 struct proc_dir_entry *pde = PDE(inode); in proc_get_link() local
439 if (!use_pde(pde)) in proc_get_link()
441 set_delayed_call(done, proc_put_link, pde); in proc_get_link()
442 return pde->data; in proc_get_link()
456 PROC_I(inode)->pde = de; in proc_get_inode()