diff options
author | Naohiro Aota <naohiro.aota@wdc.com> | 2022-06-21 09:41:01 +0300 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2022-07-25 18:45:38 +0300 |
commit | 71aa147b4d9d81fa65afa6016f50d7818b64a54f (patch) | |
tree | 48080a79554a26b3aa92c316fde0a6fa79602bfc /fs/btrfs/dev-replace.c | |
parent | 99826e4cab979aed35993ac855b354f91f7474d9 (diff) | |
download | linux-71aa147b4d9d81fa65afa6016f50d7818b64a54f.tar.xz |
btrfs: fix error handling of fallback uncompress write
When cow_file_range() fails in the middle of the allocation loop, it
unlocks the pages but leaves the ordered extents intact. Thus, we need
to call btrfs_cleanup_ordered_extents() to finish the created ordered
extents.
Also, we need to call end_extent_writepage() if locked_page is available
because btrfs_cleanup_ordered_extents() never processes the region on
the locked_page.
Furthermore, we need to set the mapping as error if locked_page is
unavailable before unlocking the pages, so that the errno is properly
propagated to the user space.
CC: stable@vger.kernel.org # 5.18+
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/dev-replace.c')
0 files changed, 0 insertions, 0 deletions