diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2016-06-08 21:20:33 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-09-15 09:27:47 +0300 |
commit | 25dcddef047a2720d8cce5d8a46a9c69d7cbd142 (patch) | |
tree | 62bb1811da393a5053495f1f3bad05cc4ebe43d9 /fs/binfmt_em86.c | |
parent | c00414f20096c279d317b7763e5b90eb15d58e21 (diff) | |
download | linux-25dcddef047a2720d8cce5d8a46a9c69d7cbd142.tar.xz |
ecryptfs: fix handling of directory opening
[ Upstream commit 6a480a7842545ec520a91730209ec0bae41694c1 ]
First of all, trying to open them r/w is idiocy; it's guaranteed to fail.
Moreover, assigning ->f_pos and assuming that everything will work is
blatantly broken - try that with e.g. tmpfs as underlying layer and watch
the fireworks. There may be a non-trivial amount of state associated with
current IO position, well beyond the numeric offset. Using the single
struct file associated with underlying inode is really not a good idea;
we ought to open one for each ecryptfs directory struct file.
Additionally, file_operations both for directories and non-directories are
full of pointless methods; non-directories should *not* have ->iterate(),
directories should not have ->flush(), ->fasync() and ->splice_read().
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/binfmt_em86.c')
0 files changed, 0 insertions, 0 deletions