All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miao Xie <miaox@cn.fujitsu.com>
To: Filipe David Borba Manana <fdmanana@gmail.com>
Cc: linux-btrfs@vger.kernel.org
Subject: Re: [PATCH v3] Btrfs-progs: add missing path alloc return value check
Date: Tue, 30 Jul 2013 11:19:23 +0800	[thread overview]
Message-ID: <51F730BB.4070001@cn.fujitsu.com> (raw)
In-Reply-To: <1375137439-12167-1-git-send-email-fdmanana@gmail.com>

On 	mon, 29 Jul 2013 23:37:19 +0100, Filipe David Borba Manana wrote:
> Also remove unused path in extent-tree.c:finish_current_insert().
> 
> Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
> ---
> 
> V2: added 1 more path alloc check and removed unnecessary path
>     allocation in extent-tree.c:finish_current_insert().
> V3: added missing path alloc checks to dir-item.c, file-item.c
>     and btrfs-corrupt-block.c too.

fixup_extent_refs() in cmds-check.c and btrfs_add_root_ref() in root-tree.c also
miss the path allocation check.

Thanks
Miao

> 
>  btrfs-corrupt-block.c |    2 ++
>  dir-item.c            |    2 ++
>  extent-tree.c         |    8 ++++----
>  file-item.c           |    2 ++
>  4 files changed, 10 insertions(+), 4 deletions(-)
> 
> diff --git a/btrfs-corrupt-block.c b/btrfs-corrupt-block.c
> index 8176fad..22facd4 100644
> --- a/btrfs-corrupt-block.c
> +++ b/btrfs-corrupt-block.c
> @@ -159,6 +159,8 @@ static int corrupt_extent(struct btrfs_trans_handle *trans,
>  	int should_del = rand() % 3;
>  
>  	path = btrfs_alloc_path();
> +	if (!path)
> +		return -ENOMEM;
>  
>  	key.objectid = bytenr;
>  	key.type = (u8)-1;
> diff --git a/dir-item.c b/dir-item.c
> index f00485a..0ab3c5e 100644
> --- a/dir-item.c
> +++ b/dir-item.c
> @@ -123,6 +123,8 @@ int btrfs_insert_dir_item(struct btrfs_trans_handle *trans, struct btrfs_root
>  	btrfs_set_key_type(&key, BTRFS_DIR_ITEM_KEY);
>  	key.offset = btrfs_name_hash(name, name_len);
>  	path = btrfs_alloc_path();
> +	if (!path)
> +		return -ENOMEM;
>  	data_size = sizeof(*dir_item) + name_len;
>  	dir_item = insert_with_overflow(trans, root, path, &key, data_size,
>  					name, name_len);
> diff --git a/extent-tree.c b/extent-tree.c
> index f597e16..e4adaa3 100644
> --- a/extent-tree.c
> +++ b/extent-tree.c
> @@ -1487,6 +1487,8 @@ int btrfs_lookup_extent_info(struct btrfs_trans_handle *trans,
>  	}
>  
>  	path = btrfs_alloc_path();
> +	if (!path)
> +		return -ENOMEM;
>  	path->reada = 1;
>  
>  	key.objectid = bytenr;
> @@ -1577,6 +1579,8 @@ int btrfs_set_block_flags(struct btrfs_trans_handle *trans,
>  				  BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA);
>  
>  	path = btrfs_alloc_path();
> +	if (!path)
> +		return -ENOMEM;
>  	path->reada = 1;
>  
>  	key.objectid = bytenr;
> @@ -2078,7 +2082,6 @@ static int finish_current_insert(struct btrfs_trans_handle *trans,
>  	u64 end;
>  	u64 priv;
>  	struct btrfs_fs_info *info = extent_root->fs_info;
> -	struct btrfs_path *path;
>  	struct pending_extent_op *extent_op;
>  	struct btrfs_key key;
>  	int ret;
> @@ -2086,8 +2089,6 @@ static int finish_current_insert(struct btrfs_trans_handle *trans,
>  		btrfs_fs_incompat(extent_root->fs_info,
>  				  BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA);
>  
> -	path = btrfs_alloc_path();
> -
>  	while(1) {
>  		ret = find_first_extent_bit(&info->extent_ins, 0, &start,
>  					    &end, EXTENT_LOCKED);
> @@ -2121,7 +2122,6 @@ static int finish_current_insert(struct btrfs_trans_handle *trans,
>  				  GFP_NOFS);
>  		kfree(extent_op);
>  	}
> -	btrfs_free_path(path);
>  	return 0;
>  }
>  
> diff --git a/file-item.c b/file-item.c
> index 9c787f0..82bf99e 100644
> --- a/file-item.c
> +++ b/file-item.c
> @@ -417,6 +417,8 @@ int btrfs_del_csums(struct btrfs_trans_handle *trans,
>  	root = root->fs_info->csum_root;
>  
>  	path = btrfs_alloc_path();
> +	if (!path)
> +		return -ENOMEM;
>  
>  	while (1) {
>  		key.objectid = BTRFS_EXTENT_CSUM_OBJECTID;
> 


  reply	other threads:[~2013-07-30  3:18 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-19  6:46 [PATCH] Btrfs-progs: add missing path alloc return value check Filipe David Borba Manana
2013-07-19  7:58 ` Miao Xie
2013-07-29 22:27 ` [PATCH v2] " Filipe David Borba Manana
2013-07-29 22:37 ` [PATCH v3] " Filipe David Borba Manana
2013-07-30  3:19   ` Miao Xie [this message]
2013-07-30 11:09 ` [PATCH v4] " Filipe David Borba Manana
2013-07-31  1:14   ` Miao Xie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51F730BB.4070001@cn.fujitsu.com \
    --to=miaox@cn.fujitsu.com \
    --cc=fdmanana@gmail.com \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.