All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zheng Liu <gnehzuil.liu@gmail.com>
To: Eric Sandeen <sandeen@redhat.com>
Cc: ext4 development <linux-ext4@vger.kernel.org>
Subject: Re: [PATCH] ext4: remove unreachable code after ext4_can_extents_be_merged()
Date: Fri, 1 Nov 2013 11:09:19 +0800	[thread overview]
Message-ID: <20131101030919.GB7314@gmail.com> (raw)
In-Reply-To: <5272C929.80303@redhat.com>

On Thu, Oct 31, 2013 at 04:18:33PM -0500, Eric Sandeen wrote:
> commit
> ec22ba8e ext4: disable merging of uninitialized extents
>  
> ensured that if either extent under consideration is uninit,
> we decline to merge, and ext4_can_extents_be_merged() returns false.
> 
> So there is no need for the caller to then test whether the
> extent under consideration is unitialized; if it were, we
> wouldn't have gotten that far.
> 
> The comments were also inaccurate; ext4_can_extents_be_merged()
> no longer XORs the states, it fails if *either* is uninit.
> 
> Signed-off-by: Eric Sandeen <sandeen@redhat.com>

Looks good to me.
Reviewed-by: Zheng Liu <wenqing.lz@taobao.com>

Thanks,
                                                - Zheng

> ---
> 
> Disclaimer: compile-tested only.
> 
> diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
> index de6d467..35f65cf 100644
> --- a/fs/ext4/extents.c
> +++ b/fs/ext4/extents.c
> @@ -1715,7 +1715,6 @@ static int ext4_ext_try_to_merge_right(struct inode *inode,
>  	struct ext4_extent_header *eh;
>  	unsigned int depth, len;
>  	int merge_done = 0;
> -	int uninitialized = 0;
>  
>  	depth = ext_depth(inode);
>  	BUG_ON(path[depth].p_hdr == NULL);
> @@ -1725,12 +1724,8 @@ static int ext4_ext_try_to_merge_right(struct inode *inode,
>  		if (!ext4_can_extents_be_merged(inode, ex, ex + 1))
>  			break;
>  		/* merge with next extent! */
> -		if (ext4_ext_is_uninitialized(ex))
> -			uninitialized = 1;
>  		ex->ee_len = cpu_to_le16(ext4_ext_get_actual_len(ex)
>  				+ ext4_ext_get_actual_len(ex + 1));
> -		if (uninitialized)
> -			ext4_ext_mark_uninitialized(ex);
>  
>  		if (ex + 1 < EXT_LAST_EXTENT(eh)) {
>  			len = (EXT_LAST_EXTENT(eh) - ex - 1)
> @@ -1885,7 +1880,6 @@ int ext4_ext_insert_extent(handle_t *handle, struct inode *inode,
>  	struct ext4_ext_path *npath = NULL;
>  	int depth, len, err;
>  	ext4_lblk_t next;
> -	unsigned uninitialized = 0;
>  	int mb_flags = 0;
>  
>  	if (unlikely(ext4_ext_get_actual_len(newext) == 0)) {
> @@ -1937,18 +1931,8 @@ int ext4_ext_insert_extent(handle_t *handle, struct inode *inode,
>  			if (err)
>  				return err;
>  
> -			/*
> -			 * ext4_can_extents_be_merged should have checked
> -			 * that either both extents are uninitialized, or
> -			 * both aren't. Thus we need to check only one of
> -			 * them here.
> -			 */
> -			if (ext4_ext_is_uninitialized(ex))
> -				uninitialized = 1;
>  			ex->ee_len = cpu_to_le16(ext4_ext_get_actual_len(ex)
>  					+ ext4_ext_get_actual_len(newext));
> -			if (uninitialized)
> -				ext4_ext_mark_uninitialized(ex);
>  			eh = path[depth].p_hdr;
>  			nearex = ex;
>  			goto merge;
> @@ -1971,20 +1955,10 @@ prepend:
>  			if (err)
>  				return err;
>  
> -			/*
> -			 * ext4_can_extents_be_merged should have checked
> -			 * that either both extents are uninitialized, or
> -			 * both aren't. Thus we need to check only one of
> -			 * them here.
> -			 */
> -			if (ext4_ext_is_uninitialized(ex))
> -				uninitialized = 1;
>  			ex->ee_block = newext->ee_block;
>  			ext4_ext_store_pblock(ex, ext4_ext_pblock(newext));
>  			ex->ee_len = cpu_to_le16(ext4_ext_get_actual_len(ex)
>  					+ ext4_ext_get_actual_len(newext));
> -			if (uninitialized)
> -				ext4_ext_mark_uninitialized(ex);
>  			eh = path[depth].p_hdr;
>  			nearex = ex;
>  			goto merge;
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2013-11-01  3:07 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-31 21:00 [PATCH] ext4: remove unreachable code in ext4_can_extents_be_merged() Eric Sandeen
2013-10-31 21:18 ` [PATCH] ext4: remove unreachable code after ext4_can_extents_be_merged() Eric Sandeen
2013-11-01  3:09   ` Zheng Liu [this message]
2013-11-08  3:26   ` Theodore Ts'o
2013-11-01  3:05 ` [PATCH] ext4: remove unreachable code in ext4_can_extents_be_merged() Zheng Liu
2013-11-08  3:26 ` Theodore Ts'o

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=20131101030919.GB7314@gmail.com \
    --to=gnehzuil.liu@gmail.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=sandeen@redhat.com \
    /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.