diff options
author | Miao Xie <miaox@cn.fujitsu.com> | 2014-09-12 12:43:57 +0200 |
---|---|---|
committer | Chris Mason <clm@fb.com> | 2014-09-17 22:38:54 +0200 |
commit | 6c387ab20db15f2bd448f7c508e2638101b16ea1 (patch) | |
tree | 52b1bbe1cb2d847f10e7b790ea96d73cc968cbdc /fs/btrfs/extent_io.c | |
parent | Btrfs: do file data check by sub-bio's self (diff) | |
download | linux-6c387ab20db15f2bd448f7c508e2638101b16ea1.tar.xz linux-6c387ab20db15f2bd448f7c508e2638101b16ea1.zip |
Btrfs: fix missing error handler if submiting re-read bio fails
We forgot to free failure record and bio after submitting re-read bio failed,
fix it.
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'fs/btrfs/extent_io.c')
-rw-r--r-- | fs/btrfs/extent_io.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index ad04f85ac45d..dc501a9ca227 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -2348,6 +2348,11 @@ static int bio_readpage_error(struct bio *failed_bio, u64 phy_offset, ret = tree->ops->submit_bio_hook(inode, read_mode, bio, failrec->this_mirror, failrec->bio_flags, 0); + if (ret) { + free_io_failure(inode, failrec, 0); + bio_put(bio); + } + return ret; } |