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()
155 struct file *filp, in debugfs_locked_down() argument
159 !(filp->f_mode & FMODE_WRITE) && in debugfs_locked_down()
171 static int open_proxy_open(struct inode *inode, struct file *filp) in open_proxy_open() argument
173 struct dentry *dentry = F_DENTRY(filp); in open_proxy_open()
181 real_fops = debugfs_real_fops(filp); in open_proxy_open()
183 r = debugfs_locked_down(inode, filp, real_fops); in open_proxy_open()
202 replace_fops(filp, real_fops); in open_proxy_open()
205 r = real_fops->open(inode, filp); in open_proxy_open()
219 #define FULL_PROXY_FUNC(name, ret_type, filp, proto, args) \ argument
222 struct dentry *dentry = F_DENTRY(filp); \
229 real_fops = debugfs_real_fops(filp); \
235 FULL_PROXY_FUNC(llseek, loff_t, filp,
236 PROTO(struct file *filp, loff_t offset, int whence),
237 ARGS(filp, offset, whence));
239 FULL_PROXY_FUNC(read, ssize_t, filp,
240 PROTO(struct file *filp, char __user *buf, size_t size,
242 ARGS(filp, buf, size, ppos));
244 FULL_PROXY_FUNC(write, ssize_t, filp,
245 PROTO(struct file *filp, const char __user *buf, size_t size,
247 ARGS(filp, buf, size, ppos));
249 FULL_PROXY_FUNC(unlocked_ioctl, long, filp,
250 PROTO(struct file *filp, unsigned int cmd, unsigned long arg),
251 ARGS(filp, cmd, arg));
253 static __poll_t full_proxy_poll(struct file *filp, in full_proxy_poll() argument
256 struct dentry *dentry = F_DENTRY(filp); in full_proxy_poll()
263 real_fops = debugfs_real_fops(filp); in full_proxy_poll()
264 r = real_fops->poll(filp, wait); in full_proxy_poll()
269 static int full_proxy_release(struct inode *inode, struct file *filp) in full_proxy_release() argument
271 const struct dentry *dentry = F_DENTRY(filp); in full_proxy_release()
272 const struct file_operations *real_fops = debugfs_real_fops(filp); in full_proxy_release()
273 const struct file_operations *proxy_fops = filp->f_op; in full_proxy_release()
283 r = real_fops->release(inode, filp); in full_proxy_release()
285 replace_fops(filp, d_inode(dentry)->i_fop); in full_proxy_release()
307 static int full_proxy_open(struct inode *inode, struct file *filp) in full_proxy_open() argument
309 struct dentry *dentry = F_DENTRY(filp); in full_proxy_open()
318 real_fops = debugfs_real_fops(filp); in full_proxy_open()
320 r = debugfs_locked_down(inode, filp, real_fops); in full_proxy_open()
346 replace_fops(filp, proxy_fops); in full_proxy_open()
349 r = real_fops->open(inode, filp); in full_proxy_open()
351 replace_fops(filp, d_inode(dentry)->i_fop); in full_proxy_open()
353 } else if (filp->f_op != proxy_fops) { in full_proxy_open()