Patchwork ext4: make ext4_add_dirent_to_inline function return 0

login
register
mail settings
Submitter Zheng Liu
Date July 9, 2013, 12:11 a.m.
Message ID <1373328699-23037-1-git-send-email-wenqing.lz@taobao.com>
Download mbox | patch
Permalink /patch/257615/
State Rejected
Headers show

Comments

Zheng Liu - July 9, 2013, 12:11 a.m.
From: Zheng Liu <wenqing.lz@taobao.com>

Currently ext4_add_dirent_to_inline() function returns 1 to indicate
that a new directory entry has been added.  But it sounds reasonable
to return 0 in this function.  Meanwhile we also can eliminate a if
statement in ext4_add_entry() function when a directory entry has added
correctly.

Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Cc: Tao Ma <tm@tao.ma>
Cc: "Theodore Ts'o" <tytso@mit.edu>
---
 fs/ext4/inline.c |    2 +-
 fs/ext4/namei.c  |    6 +-----
 2 files changed, 2 insertions(+), 6 deletions(-)
Tao Ma - July 9, 2013, 1:47 a.m.
On 07/09/2013 08:11 AM, Zheng Liu wrote:
> From: Zheng Liu <wenqing.lz@taobao.com>
> 
> Currently ext4_add_dirent_to_inline() function returns 1 to indicate
> that a new directory entry has been added.  But it sounds reasonable
> to return 0 in this function.  Meanwhile we also can eliminate a if
> statement in ext4_add_entry() function when a directory entry has added
> correctly.
> 
> Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
> Cc: Tao Ma <tm@tao.ma>
> Cc: "Theodore Ts'o" <tytso@mit.edu>
> ---
>  fs/ext4/inline.c |    2 +-
>  fs/ext4/namei.c  |    6 +-----
>  2 files changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
> index b8a0746..5a27d32 100644
> --- a/fs/ext4/inline.c
> +++ b/fs/ext4/inline.c
> @@ -1027,7 +1027,7 @@ static int ext4_add_dirent_to_inline(handle_t *handle,
>  	ext4_update_dx_flag(dir);
>  	dir->i_version++;
>  	ext4_mark_inode_dirty(handle, dir);
> -	return 1;
> +	return 0;
>  }
>  
>  static void *ext4_get_inline_xattr_pos(struct inode *inode,
> diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
> index ab2f6dc..2a6a736 100644
> --- a/fs/ext4/namei.c
> +++ b/fs/ext4/namei.c
> @@ -1901,12 +1901,8 @@ static int ext4_add_entry(handle_t *handle, struct dentry *dentry,
>  
>  	if (ext4_has_inline_data(dir)) {
>  		retval = ext4_try_add_inline_entry(handle, dentry, inode);
> -		if (retval < 0)
> +		if (retval <= 0)
Sorry, I guess you misread the codes here. If we get 0 here, it means
that ext4_try_add_inline_entry can't add this entry into the inline
data, but there is no error, so please go on with the normal case. "1"
means we have successfully done the work. So your change is wrong.

Thanks,
Tao
>  			return retval;
> -		if (retval == 1) {
> -			retval = 0;
> -			return retval;
> -		}
>  	}
>  
>  	if (is_dx(dir)) {
> 

--
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
Zheng Liu - July 9, 2013, 12:15 p.m.
On Tue, Jul 09, 2013 at 09:47:12AM +0800, Tao Ma wrote:
> On 07/09/2013 08:11 AM, Zheng Liu wrote:
> > From: Zheng Liu <wenqing.lz@taobao.com>
> > 
> > Currently ext4_add_dirent_to_inline() function returns 1 to indicate
> > that a new directory entry has been added.  But it sounds reasonable
> > to return 0 in this function.  Meanwhile we also can eliminate a if
> > statement in ext4_add_entry() function when a directory entry has added
> > correctly.
> > 
> > Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
> > Cc: Tao Ma <tm@tao.ma>
> > Cc: "Theodore Ts'o" <tytso@mit.edu>
> > ---
> >  fs/ext4/inline.c |    2 +-
> >  fs/ext4/namei.c  |    6 +-----
> >  2 files changed, 2 insertions(+), 6 deletions(-)
> > 
> > diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
> > index b8a0746..5a27d32 100644
> > --- a/fs/ext4/inline.c
> > +++ b/fs/ext4/inline.c
> > @@ -1027,7 +1027,7 @@ static int ext4_add_dirent_to_inline(handle_t *handle,
> >  	ext4_update_dx_flag(dir);
> >  	dir->i_version++;
> >  	ext4_mark_inode_dirty(handle, dir);
> > -	return 1;
> > +	return 0;
> >  }
> >  
> >  static void *ext4_get_inline_xattr_pos(struct inode *inode,
> > diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
> > index ab2f6dc..2a6a736 100644
> > --- a/fs/ext4/namei.c
> > +++ b/fs/ext4/namei.c
> > @@ -1901,12 +1901,8 @@ static int ext4_add_entry(handle_t *handle, struct dentry *dentry,
> >  
> >  	if (ext4_has_inline_data(dir)) {
> >  		retval = ext4_try_add_inline_entry(handle, dentry, inode);
> > -		if (retval < 0)
> > +		if (retval <= 0)
> Sorry, I guess you misread the codes here. If we get 0 here, it means
> that ext4_try_add_inline_entry can't add this entry into the inline
> data, but there is no error, so please go on with the normal case. "1"
> means we have successfully done the work. So your change is wrong.

Ah, you are right.  Thanks for pointing it out.

                                                - Zheng
--
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

Patch

diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
index b8a0746..5a27d32 100644
--- a/fs/ext4/inline.c
+++ b/fs/ext4/inline.c
@@ -1027,7 +1027,7 @@  static int ext4_add_dirent_to_inline(handle_t *handle,
 	ext4_update_dx_flag(dir);
 	dir->i_version++;
 	ext4_mark_inode_dirty(handle, dir);
-	return 1;
+	return 0;
 }
 
 static void *ext4_get_inline_xattr_pos(struct inode *inode,
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
index ab2f6dc..2a6a736 100644
--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -1901,12 +1901,8 @@  static int ext4_add_entry(handle_t *handle, struct dentry *dentry,
 
 	if (ext4_has_inline_data(dir)) {
 		retval = ext4_try_add_inline_entry(handle, dentry, inode);
-		if (retval < 0)
+		if (retval <= 0)
 			return retval;
-		if (retval == 1) {
-			retval = 0;
-			return retval;
-		}
 	}
 
 	if (is_dx(dir)) {