diff options
| author | David S. Miller <davem@davemloft.net> | 2019-04-08 23:39:36 -0700 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2019-04-08 23:39:36 -0700 |
| commit | 310655b07ae8ef0b8fdb641b610ded2052215664 (patch) | |
| tree | d9b7a500ef21a087a337e1f1bb9218000cf1c03d /fs/open.c | |
| parent | 7f301cff1fc20c5b91203c5e610cf95782081d5d (diff) | |
| parent | 869e3305f23dfeacdaa234717c92ccb237815d90 (diff) | |
| download | linux-next-310655b07ae8ef0b8fdb641b610ded2052215664.tar.gz linux-next-310655b07ae8ef0b8fdb641b610ded2052215664.zip | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'fs/open.c')
| -rw-r--r-- | fs/open.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/fs/open.c b/fs/open.c index f1c2f855fd43..a00350018a47 100644 --- a/fs/open.c +++ b/fs/open.c @@ -1215,3 +1215,21 @@ int nonseekable_open(struct inode *inode, struct file *filp) } EXPORT_SYMBOL(nonseekable_open); + +/* + * stream_open is used by subsystems that want stream-like file descriptors. + * Such file descriptors are not seekable and don't have notion of position + * (file.f_pos is always 0). Contrary to file descriptors of other regular + * files, .read() and .write() can run simultaneously. + * + * stream_open never fails and is marked to return int so that it could be + * directly used as file_operations.open . + */ +int stream_open(struct inode *inode, struct file *filp) +{ + filp->f_mode &= ~(FMODE_LSEEK | FMODE_PREAD | FMODE_PWRITE | FMODE_ATOMIC_POS); + filp->f_mode |= FMODE_STREAM; + return 0; +} + +EXPORT_SYMBOL(stream_open); |
