diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2014-03-04 20:54:22 +0100 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-03-10 16:44:42 +0100 |
commit | bd2a31d522344b3ac2fb680bd2366e77a9bd8209 (patch) | |
tree | d08be6aea75b2f41bebf516bfc33187d0673bfce /fs/read_write.c | |
parent | sockfd_lookup_light(): switch to fdget^W^Waway from fget_light (diff) | |
download | linux-bd2a31d522344b3ac2fb680bd2366e77a9bd8209.tar.xz linux-bd2a31d522344b3ac2fb680bd2366e77a9bd8209.zip |
get rid of fget_light()
instead of returning the flags by reference, we can just have the
low-level primitive return those in lower bits of unsigned long,
with struct file * derived from the rest.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/read_write.c')
-rw-r--r-- | fs/read_write.c | 16 |
1 files changed, 1 insertions, 15 deletions
diff --git a/fs/read_write.c b/fs/read_write.c index 932bb3414a96..54e19b9392dc 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -264,23 +264,9 @@ loff_t vfs_llseek(struct file *file, loff_t offset, int whence) } EXPORT_SYMBOL(vfs_llseek); -/* - * We only lock f_pos if we have threads or if the file might be - * shared with another process. In both cases we'll have an elevated - * file count (done either by fdget() or by fork()). - */ static inline struct fd fdget_pos(int fd) { - struct fd f = fdget(fd); - struct file *file = f.file; - - if (file && (file->f_mode & FMODE_ATOMIC_POS)) { - if (file_count(file) > 1) { - f.flags |= FDPUT_POS_UNLOCK; - mutex_lock(&file->f_pos_lock); - } - } - return f; + return __to_fd(__fdget_pos(fd)); } static inline void fdput_pos(struct fd f) |