Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

filemap: minor cleanup for filemap_write_and_wait_range

Restructure the logic in filemap_write_and_wait_range to simplify the code
and make it more consistent with file_write_and_wait_range. No functional
change intended.

Link: https://lkml.kernel.org/r/20220627132351.55680-1-linmiaohe@huawei.com
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Reviewed-by: Muchun Song <songmuchun@bytedance.com>
Cc: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Miaohe Lin and committed by
akpm
ccac11da 7f82f922

+6 -12
+6 -12
mm/filemap.c
··· 667 667 int filemap_write_and_wait_range(struct address_space *mapping, 668 668 loff_t lstart, loff_t lend) 669 669 { 670 - int err = 0; 670 + int err = 0, err2; 671 671 672 672 if (mapping_needs_writeback(mapping)) { 673 673 err = __filemap_fdatawrite_range(mapping, lstart, lend, ··· 678 678 * But the -EIO is special case, it may indicate the worst 679 679 * thing (e.g. bug) happened, so we avoid waiting for it. 680 680 */ 681 - if (err != -EIO) { 682 - int err2 = filemap_fdatawait_range(mapping, 683 - lstart, lend); 684 - if (!err) 685 - err = err2; 686 - } else { 687 - /* Clear any previously stored errors */ 688 - filemap_check_errors(mapping); 689 - } 690 - } else { 691 - err = filemap_check_errors(mapping); 681 + if (err != -EIO) 682 + __filemap_fdatawait_range(mapping, lstart, lend); 692 683 } 684 + err2 = filemap_check_errors(mapping); 685 + if (!err) 686 + err = err2; 693 687 return err; 694 688 } 695 689 EXPORT_SYMBOL(filemap_write_and_wait_range);