]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
filemap: minor cleanup for filemap_write_and_wait_range
authorMiaohe Lin <linmiaohe@huawei.com>
Mon, 27 Jun 2022 13:23:51 +0000 (21:23 +0800)
committerakpm <akpm@linux-foundation.org>
Wed, 20 Jul 2022 21:41:46 +0000 (14:41 -0700)
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>
mm/filemap.c

index ffdfbc8b0e3cab54b046b36929b1a38fd987e04a..cd59f055e29d50306610e16a81fa4b6b0c1d1e1f 100644 (file)
@@ -667,7 +667,7 @@ EXPORT_SYMBOL_GPL(filemap_range_has_writeback);
 int filemap_write_and_wait_range(struct address_space *mapping,
                                 loff_t lstart, loff_t lend)
 {
-       int err = 0;
+       int err = 0, err2;
 
        if (mapping_needs_writeback(mapping)) {
                err = __filemap_fdatawrite_range(mapping, lstart, lend,
@@ -678,18 +678,12 @@ int filemap_write_and_wait_range(struct address_space *mapping,
                 * But the -EIO is special case, it may indicate the worst
                 * thing (e.g. bug) happened, so we avoid waiting for it.
                 */
-               if (err != -EIO) {
-                       int err2 = filemap_fdatawait_range(mapping,
-                                               lstart, lend);
-                       if (!err)
-                               err = err2;
-               } else {
-                       /* Clear any previously stored errors */
-                       filemap_check_errors(mapping);
-               }
-       } else {
-               err = filemap_check_errors(mapping);
+               if (err != -EIO)
+                       __filemap_fdatawait_range(mapping, lstart, lend);
        }
+       err2 = filemap_check_errors(mapping);
+       if (!err)
+               err = err2;
        return err;
 }
 EXPORT_SYMBOL(filemap_write_and_wait_range);