Commit 7f2cb0ca authored by Qu Wenruo's avatar Qu Wenruo Committed by Yang Yingliang
Browse files

btrfs: extent_io: Handle errors better in extent_write_full_page()



mainline inclusion
from mainline-v5.2-rc2
commit 3065976b
category: bugfix
bugzilla: 13690
CVE: CVE-2019-19377

Introduce end_write_bio() for CVE-2019-19377.
-------------------------------------------------

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: default avatarQu Wenruo <wqu@suse.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
Conflicts:
  fs/btrfs/extent_io.c
[yyl: adjust context]

Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
Reviewed-by: default avatarJason Yan <yanaijie@huawei.com>
Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
parent 8183e8ce
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment