f2fs: fix retry logic in f2fs_write_cache_pages()
authorSahitya Tummala <stummala@codeaurora.org>
Tue, 2 Jun 2020 12:41:47 +0000 (18:11 +0530)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 4 Jun 2020 18:45:09 +0000 (11:45 -0700)
commite78790f84a5417287965a06cd4dea85df0743935
treef93d87b57aa2c9f54ced0549316e62b7034834a6
parentca7f76e680745d3b8a386638045f85dac1c4b2f4
f2fs: fix retry logic in f2fs_write_cache_pages()

In case a compressed file is getting overwritten, the current retry
logic doesn't include the current page to be retried now as it sets
the new start index as 0 and new end index as writeback_index - 1.
This causes the corresponding cluster to be uncompressed and written
as normal pages without compression. Fix this by allowing writeback to
be retried for the current page as well (in case of compressed page
getting retried due to index mismatch with cluster index). So that
this cluster can be written compressed in case of overwrite.

Also, align f2fs_write_cache_pages() according to the change -
<64081362e8ff>("mm/page-writeback.c: fix range_cyclic writeback vs
writepages deadlock").

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