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()
192 replace_fops(filp, real_fops); in open_proxy_open()
195 r = real_fops->open(inode, filp); in open_proxy_open()
209 #define FULL_PROXY_FUNC(name, ret_type, filp, proto, args) \ argument
212 struct dentry *dentry = F_DENTRY(filp); \
219 real_fops = debugfs_real_fops(filp); \
225 FULL_PROXY_FUNC(llseek, loff_t, filp,
226 PROTO(struct file *filp, loff_t offset, int whence),
227 ARGS(filp, offset, whence));
229 FULL_PROXY_FUNC(read, ssize_t, filp,
230 PROTO(struct file *filp, char __user *buf, size_t size,
232 ARGS(filp, buf, size, ppos));
234 FULL_PROXY_FUNC(write, ssize_t, filp,
235 PROTO(struct file *filp, const char __user *buf, size_t size,
237 ARGS(filp, buf, size, ppos));
239 FULL_PROXY_FUNC(unlocked_ioctl, long, filp,
240 PROTO(struct file *filp, unsigned int cmd, unsigned long arg),
241 ARGS(filp, cmd, arg));
243 static __poll_t full_proxy_poll(struct file *filp, in full_proxy_poll() argument
246 struct dentry *dentry = F_DENTRY(filp); in full_proxy_poll()
253 real_fops = debugfs_real_fops(filp); in full_proxy_poll()
254 r = real_fops->poll(filp, wait); in full_proxy_poll()
259 static int full_proxy_release(struct inode *inode, struct file *filp) in full_proxy_release() argument
261 const struct dentry *dentry = F_DENTRY(filp); in full_proxy_release()
262 const struct file_operations *real_fops = debugfs_real_fops(filp); in full_proxy_release()
263 const struct file_operations *proxy_fops = filp->f_op; in full_proxy_release()
273 r = real_fops->release(inode, filp); in full_proxy_release()
275 replace_fops(filp, d_inode(dentry)->i_fop); in full_proxy_release()
297 static int full_proxy_open(struct inode *inode, struct file *filp) in full_proxy_open() argument
299 struct dentry *dentry = F_DENTRY(filp); in full_proxy_open()
308 real_fops = debugfs_real_fops(filp); in full_proxy_open()
310 r = debugfs_locked_down(inode, filp, real_fops); in full_proxy_open()
334 replace_fops(filp, proxy_fops); in full_proxy_open()
337 r = real_fops->open(inode, filp); in full_proxy_open()
339 replace_fops(filp, d_inode(dentry)->i_fop); in full_proxy_open()
341 } else if (filp->f_op != proxy_fops) { in full_proxy_open()