diff options
author | Wang Shilong <wangsl-fnst@cn.fujitsu.com> | 2013-05-08 10:10:25 +0200 |
---|---|---|
committer | Josef Bacik <jbacik@fusionio.com> | 2013-05-18 03:40:17 +0200 |
commit | c16c2e2e51c2f0951fffa73c343b8fcb641108ba (patch) | |
tree | 4d4fe921e979bf12c98f488362afa45c5cd18429 /fs/btrfs/backref.c | |
parent | Btrfs: don't allow device replace on RAID5/RAID6 (diff) | |
download | linux-c16c2e2e51c2f0951fffa73c343b8fcb641108ba.tar.xz linux-c16c2e2e51c2f0951fffa73c343b8fcb641108ba.zip |
Btrfs: fix possible memory leak in the find_parent_nodes()
In the find_parent_nodes(), if read_tree_block() fails, we can
not return directly, we should free some allocated memory otherwise
memory leak happens.
Signed-off-by: Wang Shilong <wangsl-fnst@cn.fujitsu.com>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Diffstat (limited to 'fs/btrfs/backref.c')
-rw-r--r-- | fs/btrfs/backref.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c index b4fb41558111..290e347b6db3 100644 --- a/fs/btrfs/backref.c +++ b/fs/btrfs/backref.c @@ -918,7 +918,8 @@ again: ref->parent, bsz, 0); if (!eb || !extent_buffer_uptodate(eb)) { free_extent_buffer(eb); - return -EIO; + ret = -EIO; + goto out; } ret = find_extent_in_eb(eb, bytenr, *extent_item_pos, &eie); |