diff options
author | Jeff Layton <jlayton@redhat.com> | 2017-07-06 07:02:22 -0400 |
---|---|---|
committer | Jeff Layton <jlayton@redhat.com> | 2017-07-06 07:02:22 -0400 |
commit | 76341cabbdad65c10a4162e9dfa82a6342afc02f (patch) | |
tree | 92413633a5fc6554fecd37842a4bcfd06fde0adb /include/linux/fs.h | |
parent | 87354e5de04fe727227ff619af164202adcfa4d4 (diff) |
jbd2: don't clear and reset errors after waiting on writeback
Resetting this flag is almost certainly racy, and will be problematic
with some coming changes.
Make filemap_fdatawait_keep_errors return int, but not clear the flag(s).
Have jbd2 call it instead of filemap_fdatawait and don't attempt to
re-set the error flag if it fails.
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r-- | include/linux/fs.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index 803e5a9b2654..8ac8df1b3550 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -2514,7 +2514,7 @@ extern int write_inode_now(struct inode *, int); | |||
2514 | extern int filemap_fdatawrite(struct address_space *); | 2514 | extern int filemap_fdatawrite(struct address_space *); |
2515 | extern int filemap_flush(struct address_space *); | 2515 | extern int filemap_flush(struct address_space *); |
2516 | extern int filemap_fdatawait(struct address_space *); | 2516 | extern int filemap_fdatawait(struct address_space *); |
2517 | extern void filemap_fdatawait_keep_errors(struct address_space *); | 2517 | extern int filemap_fdatawait_keep_errors(struct address_space *mapping); |
2518 | extern int filemap_fdatawait_range(struct address_space *, loff_t lstart, | 2518 | extern int filemap_fdatawait_range(struct address_space *, loff_t lstart, |
2519 | loff_t lend); | 2519 | loff_t lend); |
2520 | extern int filemap_write_and_wait(struct address_space *mapping); | 2520 | extern int filemap_write_and_wait(struct address_space *mapping); |