diff mbox

[v2] Btrfs: add missing error check to find_parent_nodes

Message ID 1375226795-7671-1-git-send-email-fdmanana@gmail.com (mailing list archive)
State Accepted, archived
Headers show

Commit Message

Filipe Manana July 30, 2013, 11:26 p.m. UTC
Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
---

V2: Ensure extent buffer is freed on error.

 fs/btrfs/backref.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Jan Schmidt July 31, 2013, 9:07 a.m. UTC | #1
On Wed, July 31, 2013 at 01:26 (+0200), Filipe David Borba Manana wrote:
> Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
> ---
> 
> V2: Ensure extent buffer is freed on error.
> 
>  fs/btrfs/backref.c |    4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c
> index 8bc5e8c..980e85a 100644
> --- a/fs/btrfs/backref.c
> +++ b/fs/btrfs/backref.c
> @@ -935,8 +935,10 @@ again:
>  				}
>  				ret = find_extent_in_eb(eb, bytenr,
>  							*extent_item_pos, &eie);
> -				ref->inode_list = eie;
>  				free_extent_buffer(eb);
> +				if (ret < 0)
> +					goto out;
> +				ref->inode_list = eie;
>  			}
>  			ret = ulist_add_merge(refs, ref->parent,
>  					      (uintptr_t)ref->inode_list,
> 

The only ret < 0 I'm seeing is ENOMEM, so that should be safe.

Reviewed-by: Jan Schmidt <list.btrfs@jan-o-sch.net>

Thanks,
-Jan
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c
index 8bc5e8c..980e85a 100644
--- a/fs/btrfs/backref.c
+++ b/fs/btrfs/backref.c
@@ -935,8 +935,10 @@  again:
 				}
 				ret = find_extent_in_eb(eb, bytenr,
 							*extent_item_pos, &eie);
-				ref->inode_list = eie;
 				free_extent_buffer(eb);
+				if (ret < 0)
+					goto out;
+				ref->inode_list = eie;
 			}
 			ret = ulist_add_merge(refs, ref->parent,
 					      (uintptr_t)ref->inode_list,