diff options
| author | Stephen Rothwell <sfr@canb.auug.org.au> | 2022-06-28 16:54:05 +1000 |
|---|---|---|
| committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2022-06-28 16:54:05 +1000 |
| commit | 5f9df76887bf8170e8844f1907c13fbbb30e9c36 (patch) | |
| tree | 3b940f7e1c36605af69ffe3a3e9bc8fa53bd12a1 /mm/filemap.c | |
| parent | 8f850ad6cf932b8b5125f9585cb397e08403cccd (diff) | |
| parent | 84b494dcbcc015419e629ced664d3b737e83336e (diff) | |
| download | linux-next-akpm.tar.gz | |
# Conflicts:
# include/linux/pagevec.h
Diffstat (limited to 'mm/filemap.c')
| -rw-r--r-- | mm/filemap.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/mm/filemap.c b/mm/filemap.c index 8ccb868c3d9520..b561619cfafeba 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -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); |
