diff options
author | Chris Mason <clm@fb.com> | 2016-08-05 22:25:05 +0300 |
---|---|---|
committer | Chris Mason <clm@fb.com> | 2016-08-05 22:25:05 +0300 |
commit | 10838816547a28696ca10e038b3b32f2efec5a42 (patch) | |
tree | c8abb5cb6139473ea58859f2093a37d8328ee7bb /fs/btrfs/file.c | |
parent | 42049bf60db4c01e0432fc861463dcd3208c0d93 (diff) | |
parent | e6571499336e10f93a77c51a35fd1a96828eea71 (diff) | |
download | linux-10838816547a28696ca10e038b3b32f2efec5a42.tar.xz |
Merge branch 'integration-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/fdmanana/linux into for-linus-4.8
Diffstat (limited to 'fs/btrfs/file.c')
-rw-r--r-- | fs/btrfs/file.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 9404121fd5f7..5842423f8f47 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -2033,6 +2033,14 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync) */ clear_bit(BTRFS_INODE_NEEDS_FULL_SYNC, &BTRFS_I(inode)->runtime_flags); + /* + * An ordered extent might have started before and completed + * already with io errors, in which case the inode was not + * updated and we end up here. So check the inode's mapping + * flags for any errors that might have happened while doing + * writeback of file data. + */ + ret = btrfs_inode_check_errors(inode); inode_unlock(inode); goto out; } |