2013-07-08 23:53:07

by Zheng Liu

[permalink] [raw]
Subject: [PATCH] ext4: make ext4_add_dirent_to_inline function return 0

From: Zheng Liu <[email protected]>

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 <[email protected]>
Cc: Tao Ma <[email protected]>
Cc: "Theodore Ts'o" <[email protected]>
---
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)
return retval;
- if (retval == 1) {
- retval = 0;
- return retval;
- }
}

if (is_dx(dir)) {
--
1.7.9.7



2013-07-09 01:47:25

by Tao Ma

[permalink] [raw]
Subject: Re: [PATCH] ext4: make ext4_add_dirent_to_inline function return 0

On 07/09/2013 08:11 AM, Zheng Liu wrote:
> From: Zheng Liu <[email protected]>
>
> 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 <[email protected]>
> Cc: Tao Ma <[email protected]>
> Cc: "Theodore Ts'o" <[email protected]>
> ---
> 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)) {
>


2013-07-09 11:56:24

by Zheng Liu

[permalink] [raw]
Subject: Re: [PATCH] ext4: make ext4_add_dirent_to_inline function return 0

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 <[email protected]>
> >
> > 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 <[email protected]>
> > Cc: Tao Ma <[email protected]>
> > Cc: "Theodore Ts'o" <[email protected]>
> > ---
> > 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