Lines Matching refs:pde

70 	ei->pde = NULL;  in proc_alloc_inode()
139 static inline int use_pde(struct proc_dir_entry *pde) in use_pde() argument
141 return likely(atomic_inc_unless_negative(&pde->in_use)); in use_pde()
144 static void unuse_pde(struct proc_dir_entry *pde) in unuse_pde() argument
146 if (unlikely(atomic_dec_return(&pde->in_use) == BIAS)) in unuse_pde()
147 complete(pde->pde_unload_completion); in unuse_pde()
151 static void close_pdeo(struct proc_dir_entry *pde, struct pde_opener *pdeo) in close_pdeo() argument
167 spin_unlock(&pde->pde_unload_lock); in close_pdeo()
174 spin_unlock(&pde->pde_unload_lock); in close_pdeo()
176 pde->proc_fops->release(file_inode(file), file); in close_pdeo()
177 spin_lock(&pde->pde_unload_lock); in close_pdeo()
181 spin_unlock(&pde->pde_unload_lock); in close_pdeo()
210 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_llseek() local
212 if (use_pde(pde)) { in proc_reg_llseek()
214 llseek = pde->proc_fops->llseek; in proc_reg_llseek()
218 unuse_pde(pde); in proc_reg_llseek()
226 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_read() local
228 if (use_pde(pde)) { in proc_reg_read()
229 read = pde->proc_fops->read; in proc_reg_read()
232 unuse_pde(pde); in proc_reg_read()
240 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_write() local
242 if (use_pde(pde)) { in proc_reg_write()
243 write = pde->proc_fops->write; in proc_reg_write()
246 unuse_pde(pde); in proc_reg_write()
253 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_poll() local
256 if (use_pde(pde)) { in proc_reg_poll()
257 poll = pde->proc_fops->poll; in proc_reg_poll()
260 unuse_pde(pde); in proc_reg_poll()
267 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_unlocked_ioctl() local
270 if (use_pde(pde)) { in proc_reg_unlocked_ioctl()
271 ioctl = pde->proc_fops->unlocked_ioctl; in proc_reg_unlocked_ioctl()
274 unuse_pde(pde); in proc_reg_unlocked_ioctl()
282 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_compat_ioctl() local
285 if (use_pde(pde)) { in proc_reg_compat_ioctl()
286 compat_ioctl = pde->proc_fops->compat_ioctl; in proc_reg_compat_ioctl()
289 unuse_pde(pde); in proc_reg_compat_ioctl()
297 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_mmap() local
300 if (use_pde(pde)) { in proc_reg_mmap()
301 mmap = pde->proc_fops->mmap; in proc_reg_mmap()
304 unuse_pde(pde); in proc_reg_mmap()
314 struct proc_dir_entry *pde = PDE(file_inode(file)); in proc_reg_get_unmapped_area() local
317 if (use_pde(pde)) { in proc_reg_get_unmapped_area()
320 get_area = pde->proc_fops->get_unmapped_area; in proc_reg_get_unmapped_area()
330 unuse_pde(pde); in proc_reg_get_unmapped_area()
337 struct proc_dir_entry *pde = PDE(inode); in proc_reg_open() local
354 if (!use_pde(pde)) in proc_reg_open()
357 release = pde->proc_fops->release; in proc_reg_open()
366 open = pde->proc_fops->open; in proc_reg_open()
376 spin_lock(&pde->pde_unload_lock); in proc_reg_open()
377 list_add(&pdeo->lh, &pde->pde_openers); in proc_reg_open()
378 spin_unlock(&pde->pde_unload_lock); in proc_reg_open()
384 unuse_pde(pde); in proc_reg_open()
390 struct proc_dir_entry *pde = PDE(inode); in proc_reg_release() local
392 spin_lock(&pde->pde_unload_lock); in proc_reg_release()
393 list_for_each_entry(pdeo, &pde->pde_openers, lh) { in proc_reg_release()
395 close_pdeo(pde, pdeo); in proc_reg_release()
399 spin_unlock(&pde->pde_unload_lock); in proc_reg_release()
441 struct proc_dir_entry *pde = PDE(inode); in proc_get_link() local
442 if (!use_pde(pde)) in proc_get_link()
444 set_delayed_call(done, proc_put_link, pde); in proc_get_link()
445 return pde->data; in proc_get_link()
459 PROC_I(inode)->pde = de; in proc_get_inode()