btrfs: extent_io: Handle errors better in extent_write_full_page()
authorQu Wenruo <wqu@suse.com>
Wed, 20 Mar 2019 06:27:42 +0000 (14:27 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 29 Apr 2019 17:02:23 +0000 (19:02 +0200)
commit3065976b045f77a910809fa7699f99a1e7c0dbbb
tree23dd10206fd9f4ee11e97065bb545eaa592ae944
parentf4340622e02261fae599e3da936ff4808b418173
btrfs: extent_io: Handle errors better in extent_write_full_page()

Since now flush_write_bio() could return error, kill the BUG_ON() first.
Then don't call flush_write_bio() unconditionally, instead we check the
return value from __extent_writepage() first.

If __extent_writepage() fails, we do cleanup, and return error without
submitting the possible corrupted or half-baked bio.

If __extent_writepage() successes, then we call flush_write_bio() and
return the result.

Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_io.c