]> asedeno.scripts.mit.edu Git - linux.git/commit
f2fs: fix data corruption issue with hardware encryption
authorSahitya Tummala <stummala@codeaurora.org>
Wed, 10 Oct 2018 05:26:22 +0000 (10:56 +0530)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 23 Oct 2018 00:54:47 +0000 (17:54 -0700)
commit1e78e8bd9d107c351930cdb1e11202caec01b311
treec5474a32fa460a8583eb9bc88e7c21a0035ebcf0
parent0c093b590efb5c1ccdc835868dc2ae94bd2e14dc
f2fs: fix data corruption issue with hardware encryption

Direct IO can be used in case of hardware encryption. The following
scenario results into data corruption issue in this path -

Thread A -                          Thread B-
-> write file#1 in direct IO
                                    -> GC gets kicked in
                                    -> GC submitted bio on meta mapping
       for file#1, but pending completion
-> write file#1 again with new data
   in direct IO
                                    -> GC bio gets completed now
                                    -> GC writes old data to the new
                                       location and thus file#1 is
       corrupted.

Fix this by submitting and waiting for pending io on meta mapping
for direct IO case in f2fs_map_blocks().

Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/data.c
fs/f2fs/f2fs.h
fs/f2fs/segment.c