Patchwork fix the ext4_read_inline_dir return value

login
register
mail settings
Submitter boxi liu
Date Sept. 17, 2013, 3:08 p.m.
Message ID <CAAFszuWi7u_-eYFBB=hvWqfZBcZBhneVK8m6JZhzd9Hakh8oiA@mail.gmail.com>
Download mbox | patch
Permalink /patch/275489/
State New
Headers show

Comments

boxi liu - Sept. 17, 2013, 3:08 p.m.
hi,
there may be a bug in ext4_read_inline_dir() function with inline_data feature.
when I recursion call a sys_old_readdir to read a direntry's
sub_dentry,I find that the ext4_read_inline_dir return the len of the
inline_data ,but in the no inline_data case,it will return 0.It is
inconsistent.
So I try to make a patch to fix it.

--
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
Jan Kara - Sept. 17, 2013, 4:29 p.m.
On Tue 17-09-13 23:08:51, Boxi Liu wrote:
> hi,
> there may be a bug in ext4_read_inline_dir() function with inline_data feature.
> when I recursion call a sys_old_readdir to read a direntry's
> sub_dentry,I find that the ext4_read_inline_dir return the len of the
> inline_data ,but in the no inline_data case,it will return 0.It is
> inconsistent.
> So I try to make a patch to fix it.
  The patch is fine, thanks for finding the bug. But please read
Documentation/SubmittingPatches about how your patch should be formatted.
In particular your patch has damaged whitespace (tabs converted to spaces).
Gmail does this - you have to send the patch as an attachment to avoid this
when using gmail.  Also your patch misses Signed-off-by line.

								Honza
> 
> diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
> index d9ecbf1..3ea39cd 100644
> --- a/fs/ext4/inline.c
> +++ b/fs/ext4/inline.c
> @@ -1441,7 +1441,7 @@ int ext4_read_inline_dir(struct file *file,
>   up_read(&EXT4_I(inode)->xattr_sem);
>   if (ret < 0)
>   goto out;
> -
> +   ret = 0;
>   sb = inode->i_sb;
>   parent_ino = le32_to_cpu(((struct ext4_dir_entry_2 *)dir_buf)->inode);
>   offset = ctx->pos;
> --
> 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 d9ecbf1..3ea39cd 100644
--- a/fs/ext4/inline.c
+++ b/fs/ext4/inline.c
@@ -1441,7 +1441,7 @@  int ext4_read_inline_dir(struct file *file,
  up_read(&EXT4_I(inode)->xattr_sem);
  if (ret < 0)
  goto out;
-
+   ret = 0;
  sb = inode->i_sb;
  parent_ino = le32_to_cpu(((struct ext4_dir_entry_2 *)dir_buf)->inode);
  offset = ctx->pos;