summaryrefslogtreecommitdiffstats
path: root/fs/isofs/rock.c
diff options
context:
space:
mode:
authorAl Viro2016-05-04 20:04:13 +0200
committerAl Viro2016-05-04 20:04:13 +0200
commit6a480a7842545ec520a91730209ec0bae41694c1 (patch)
treeba40d93639c0cce7e461880199023d371f1b2535 /fs/isofs/rock.c
parentatomic_open(): fix the handling of create_error (diff)
downloadkernel-qcow2-linux-6a480a7842545ec520a91730209ec0bae41694c1.tar.gz
kernel-qcow2-linux-6a480a7842545ec520a91730209ec0bae41694c1.tar.xz
kernel-qcow2-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/rock.c')
0 files changed, 0 insertions, 0 deletions