|
@@ -515,6 +515,9 @@ int filemap_write_and_wait(struct address_space *mapping)
|
|
|
int err2 = filemap_fdatawait(mapping);
|
|
|
if (!err)
|
|
|
err = err2;
|
|
|
+ } else {
|
|
|
+ /* Clear any previously stored errors */
|
|
|
+ filemap_check_errors(mapping);
|
|
|
}
|
|
|
} else {
|
|
|
err = filemap_check_errors(mapping);
|
|
@@ -549,6 +552,9 @@ int filemap_write_and_wait_range(struct address_space *mapping,
|
|
|
lstart, lend);
|
|
|
if (!err)
|
|
|
err = err2;
|
|
|
+ } else {
|
|
|
+ /* Clear any previously stored errors */
|
|
|
+ filemap_check_errors(mapping);
|
|
|
}
|
|
|
} else {
|
|
|
err = filemap_check_errors(mapping);
|