aboutsummaryrefslogtreecommitdiff
path: root/fs/f2fs/node.c
diff options
context:
space:
mode:
authorChao Yu <yuchao0@huawei.com>2016-07-03 22:05:11 +0800
committerMister Oyster <oysterized@gmail.com>2017-04-13 12:33:48 +0200
commit41e2ce8a2fc2d8c8719f7529e6ec640287e5d188 (patch)
tree1c2455b0d943b5b259be831a7ad70de02794135e /fs/f2fs/node.c
parenta69a5bafe68b6c6f0ec6e7705f2e237496d1d1c6 (diff)
f2fs: fix to avoid reading out encrypted data in page cache
For encrypted inode, if user overwrites data of the inode, f2fs will read encrypted data into page cache, and then do the decryption. However reader can race with overwriter, and it will see encrypted data which has not been decrypted by overwriter yet. Fix it by moving decrypting work to background and keep page non-uptodated until data is decrypted. Thread A Thread B - f2fs_file_write_iter - __generic_file_write_iter - generic_perform_write - f2fs_write_begin - f2fs_submit_page_bio - generic_file_read_iter - do_generic_file_read - lock_page_killable - unlock_page - copy_page_to_iter hit the encrypted data in updated page - lock_page - fscrypt_decrypt_page Signed-off-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> Conflicts: fs/f2fs/data.c
Diffstat (limited to 'fs/f2fs/node.c')
0 files changed, 0 insertions, 0 deletions