diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-06-10 05:01:45 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-07-14 08:33:31 -0400 |
commit | 47237687d73cbeae1dd7a133c3fc3d7239094568 (patch) | |
tree | 1d267d03246f0a16cbff3c8221ee69dd1521f835 /include/linux/fs.h | |
parent | a8277b9baa6268de386529a33061775bc716198b (diff) |
->atomic_open() prototype change - pass int * instead of bool *
... and let finish_open() report having opened the file via that sucker.
Next step: don't modify od->filp at all.
[AV: FILE_CREATE was already used by cifs; Miklos' fix folded]
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r-- | include/linux/fs.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index 0314635cf833..a7618cf28d0e 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -1696,7 +1696,7 @@ struct inode_operations { | |||
1696 | int (*update_time)(struct inode *, struct timespec *, int); | 1696 | int (*update_time)(struct inode *, struct timespec *, int); |
1697 | struct file * (*atomic_open)(struct inode *, struct dentry *, | 1697 | struct file * (*atomic_open)(struct inode *, struct dentry *, |
1698 | struct opendata *, unsigned open_flag, | 1698 | struct opendata *, unsigned open_flag, |
1699 | umode_t create_mode, bool *created); | 1699 | umode_t create_mode, int *opened); |
1700 | } ____cacheline_aligned; | 1700 | } ____cacheline_aligned; |
1701 | 1701 | ||
1702 | struct seq_file; | 1702 | struct seq_file; |
@@ -2065,8 +2065,13 @@ extern struct file * dentry_open(struct dentry *, struct vfsmount *, int, | |||
2065 | const struct cred *); | 2065 | const struct cred *); |
2066 | extern int filp_close(struct file *, fl_owner_t id); | 2066 | extern int filp_close(struct file *, fl_owner_t id); |
2067 | extern char * getname(const char __user *); | 2067 | extern char * getname(const char __user *); |
2068 | enum { | ||
2069 | FILE_CREATED = 1, | ||
2070 | FILE_OPENED = 2 | ||
2071 | }; | ||
2068 | extern struct file *finish_open(struct opendata *od, struct dentry *dentry, | 2072 | extern struct file *finish_open(struct opendata *od, struct dentry *dentry, |
2069 | int (*open)(struct inode *, struct file *)); | 2073 | int (*open)(struct inode *, struct file *), |
2074 | int *opened); | ||
2070 | extern void finish_no_open(struct opendata *od, struct dentry *dentry); | 2075 | extern void finish_no_open(struct opendata *od, struct dentry *dentry); |
2071 | 2076 | ||
2072 | /* fs/ioctl.c */ | 2077 | /* fs/ioctl.c */ |