2014-09-29 02:01:33

by Li Xi

[permalink] [raw]
Subject: [PATCH] ext4: fix return value of ext4_do_update_inode

When ext4_do_update_inode() gets error from ext4_inode_blocks_set(),
error number should be returned.

Signed-off-by: Li Xi <[email protected]>
---
fs/ext4/inode.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index d5dd7d4..03ddfd7 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -4204,7 +4204,8 @@ static int ext4_do_update_inode(handle_t *handle,
EXT4_INODE_SET_XTIME(i_atime, inode, raw_inode);
EXT4_EINODE_SET_XTIME(i_crtime, ei, raw_inode);

- if (ext4_inode_blocks_set(handle, raw_inode, ei)) {
+ err = ext4_inode_blocks_set(handle, raw_inode, ei);
+ if (err) {
spin_unlock(&ei->i_raw_lock);
goto out_brelse;
}
--
1.7.1



2014-09-29 02:47:01

by Eric Sandeen

[permalink] [raw]
Subject: Re: [PATCH] ext4: fix return value of ext4_do_update_inode

On 9/28/14 8:58 PM, Li Xi wrote:
> When ext4_do_update_inode() gets error from ext4_inode_blocks_set(),
> error number should be returned.

How strange, it has been missing this error return ever since the
original commit in 2008. :)

Reviewed-by: Eric Sandeen <[email protected]>

> Signed-off-by: Li Xi <[email protected]>
> ---
> fs/ext4/inode.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
> index d5dd7d4..03ddfd7 100644
> --- a/fs/ext4/inode.c
> +++ b/fs/ext4/inode.c
> @@ -4204,7 +4204,8 @@ static int ext4_do_update_inode(handle_t *handle,
> EXT4_INODE_SET_XTIME(i_atime, inode, raw_inode);
> EXT4_EINODE_SET_XTIME(i_crtime, ei, raw_inode);
>
> - if (ext4_inode_blocks_set(handle, raw_inode, ei)) {
> + err = ext4_inode_blocks_set(handle, raw_inode, ei);
> + if (err) {
> spin_unlock(&ei->i_raw_lock);
> goto out_brelse;
> }
>


2014-09-29 11:30:47

by Jan Kara

[permalink] [raw]
Subject: Re: [PATCH] ext4: fix return value of ext4_do_update_inode

On Mon 29-09-14 09:58:34, Li Xi wrote:
> When ext4_do_update_inode() gets error from ext4_inode_blocks_set(),
> error number should be returned.
Looks good. You can add:
Reviewed-by: Jan Kara <[email protected]>

Honza

>
> Signed-off-by: Li Xi <[email protected]>
> ---
> fs/ext4/inode.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
> index d5dd7d4..03ddfd7 100644
> --- a/fs/ext4/inode.c
> +++ b/fs/ext4/inode.c
> @@ -4204,7 +4204,8 @@ static int ext4_do_update_inode(handle_t *handle,
> EXT4_INODE_SET_XTIME(i_atime, inode, raw_inode);
> EXT4_EINODE_SET_XTIME(i_crtime, ei, raw_inode);
>
> - if (ext4_inode_blocks_set(handle, raw_inode, ei)) {
> + err = ext4_inode_blocks_set(handle, raw_inode, ei);
> + if (err) {
> spin_unlock(&ei->i_raw_lock);
> goto out_brelse;
> }
> --
> 1.7.1
>
--
Jan Kara <[email protected]>
SUSE Labs, CR

2014-10-02 02:22:15

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] ext4: fix return value of ext4_do_update_inode

On Mon, Sep 29, 2014 at 09:58:34AM +0800, Li Xi wrote:
> When ext4_do_update_inode() gets error from ext4_inode_blocks_set(),
> error number should be returned.
>
> Signed-off-by: Li Xi <[email protected]>

Applied, thanks.

- Ted