diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2009-12-19 10:10:39 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2009-12-22 12:27:34 -0500 |
commit | 482928d59db668b8d82a48717f78986d8cea72e9 (patch) | |
tree | 6985c64474172ddfb67c737bc4a49e588c49d055 /fs/internal.h | |
parent | 628ff7c1d8d8466a5ad8078bd0206a130f8b8a51 (diff) | |
download | lwn-482928d59db668b8d82a48717f78986d8cea72e9.tar.gz lwn-482928d59db668b8d82a48717f78986d8cea72e9.zip |
Fix f_flags/f_mode in case of lookup_instantiate_filp() from open(pathname, 3)
Just set f_flags when shoving struct file into nameidata; don't
postpone that until __dentry_open(). do_filp_open() has correct
value; lookup_instantiate_filp() doesn't - we lose the difference
between O_RDWR and 3 by that point.
We still set .intent.open.flags, so no fs code needs to be changed.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/internal.h')
-rw-r--r-- | fs/internal.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/internal.h b/fs/internal.h index f67cd141d9a8..e96a1667d749 100644 --- a/fs/internal.h +++ b/fs/internal.h @@ -85,3 +85,10 @@ extern struct file *get_empty_filp(void); * super.c */ extern int do_remount_sb(struct super_block *, int, void *, int); + +/* + * open.c + */ +struct nameidata; +extern struct file *nameidata_to_filp(struct nameidata *); +extern void release_open_intent(struct nameidata *); |