diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2016-05-04 20:04:13 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-05-04 20:04:13 +0200 |
commit | 6a480a7842545ec520a91730209ec0bae41694c1 (patch) | |
tree | ba40d93639c0cce7e461880199023d371f1b2535 /fs/isofs | |
parent | atomic_open(): fix the handling of create_error (diff) | |
download | linux-6a480a7842545ec520a91730209ec0bae41694c1.tar.xz linux-6a480a7842545ec520a91730209ec0bae41694c1.zip |
ecryptfs: fix handling of directory opening
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>
Diffstat (limited to 'fs/isofs')
0 files changed, 0 insertions, 0 deletions