Lines Matching refs:filp

48 #define F_DENTRY(filp) ((filp)->f_path.dentry)  argument
50 const struct file_operations *debugfs_real_fops(const struct file *filp) in debugfs_real_fops() argument
52 struct debugfs_fsdata *fsd = F_DENTRY(filp)->d_fsdata; in debugfs_real_fops()
147 struct file *filp, in debugfs_locked_down() argument
151 !(filp->f_mode & FMODE_WRITE) && in debugfs_locked_down()
163 static int open_proxy_open(struct inode *inode, struct file *filp) in open_proxy_open() argument
165 struct dentry *dentry = F_DENTRY(filp); in open_proxy_open()
173 real_fops = debugfs_real_fops(filp); in open_proxy_open()
175 r = debugfs_locked_down(inode, filp, real_fops); in open_proxy_open()
194 replace_fops(filp, real_fops); in open_proxy_open()
197 r = real_fops->open(inode, filp); in open_proxy_open()
211 #define FULL_PROXY_FUNC(name, ret_type, filp, proto, args) \ argument
214 struct dentry *dentry = F_DENTRY(filp); \
221 real_fops = debugfs_real_fops(filp); \
227 FULL_PROXY_FUNC(llseek, loff_t, filp,
228 PROTO(struct file *filp, loff_t offset, int whence),
229 ARGS(filp, offset, whence));
231 FULL_PROXY_FUNC(read, ssize_t, filp,
232 PROTO(struct file *filp, char __user *buf, size_t size,
234 ARGS(filp, buf, size, ppos));
236 FULL_PROXY_FUNC(write, ssize_t, filp,
237 PROTO(struct file *filp, const char __user *buf, size_t size,
239 ARGS(filp, buf, size, ppos));
241 FULL_PROXY_FUNC(unlocked_ioctl, long, filp,
242 PROTO(struct file *filp, unsigned int cmd, unsigned long arg),
243 ARGS(filp, cmd, arg));
245 static __poll_t full_proxy_poll(struct file *filp, in full_proxy_poll() argument
248 struct dentry *dentry = F_DENTRY(filp); in full_proxy_poll()
255 real_fops = debugfs_real_fops(filp); in full_proxy_poll()
256 r = real_fops->poll(filp, wait); in full_proxy_poll()
261 static int full_proxy_release(struct inode *inode, struct file *filp) in full_proxy_release() argument
263 const struct dentry *dentry = F_DENTRY(filp); in full_proxy_release()
264 const struct file_operations *real_fops = debugfs_real_fops(filp); in full_proxy_release()
265 const struct file_operations *proxy_fops = filp->f_op; in full_proxy_release()
275 r = real_fops->release(inode, filp); in full_proxy_release()
277 replace_fops(filp, d_inode(dentry)->i_fop); in full_proxy_release()
299 static int full_proxy_open(struct inode *inode, struct file *filp) in full_proxy_open() argument
301 struct dentry *dentry = F_DENTRY(filp); in full_proxy_open()
310 real_fops = debugfs_real_fops(filp); in full_proxy_open()
312 r = debugfs_locked_down(inode, filp, real_fops); in full_proxy_open()
338 replace_fops(filp, proxy_fops); in full_proxy_open()
341 r = real_fops->open(inode, filp); in full_proxy_open()
343 replace_fops(filp, d_inode(dentry)->i_fop); in full_proxy_open()
345 } else if (filp->f_op != proxy_fops) { in full_proxy_open()