Add a new inode operation i_op->dentry_open(). This is for stacked filesystems that want to return a struct file from a different filesystem.
Showing the changes to include/linux (1 of 5 files). Show all
Unified · Split
| @@ -1528,6 +1528,9 @@ struct inode_operations { · 1527 unmodified lines | ||
| 1528 | 1528 | umode_t create_mode, int *opened); |
| 1529 | 1529 | int (*tmpfile) (struct inode *, struct dentry *, umode_t); |
| 1530 | 1530 | int (*set_acl)(struct inode *, struct posix_acl *, int); |
| 1531 | + | |
| 1532 | + /* WARNING: probably going away soon, do not use! */ | |
| 1533 | + int (*dentry_open)(struct dentry *, struct file *, const struct cred *); | |
| 1531 | 1534 | } ____cacheline_aligned; |
| 1532 | 1535 | |
| 1533 | 1536 | ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector, |
| @@ -2040,6 +2043,7 @@ extern struct file *file_open_name(struct filename *, int, umode_t); · 506 unmodified lines | ||
| 2040 | 2043 | extern struct file *filp_open(const char *, int, umode_t); |
| 2041 | 2044 | extern struct file *file_open_root(struct dentry *, struct vfsmount *, |
| 2042 | 2045 | const char *, int); |
| 2046 | +extern int vfs_open(const struct path *, struct file *, const struct cred *); | |
| 2043 | 2047 | extern struct file * dentry_open(const struct path *, int, const struct cred *); |
| 2044 | 2048 | extern int filp_close(struct file *, fl_owner_t id); |
| 2045 | 2049 | |