Hello Maintainers:

Please help check this patch, when you have time.

If it need additional test, please let me know, I should try (better to
provide some suggestions for test).


Thanks.

On 08/22/2013 09:04 AM, Chen Gang wrote:
> mpol_to_str() may fail, and not fill the buffer (e.g. -EINVAL), so need
> check about it, or buffer may not be zero based, and next seq_printf()
> will cause issue.
> 
> Also need let shmem_show_mpol() return value, since it may fail.
> 
> Signed-off-by: Chen Gang <gang.c...@asianux.com>
> Reviewed-by: Cyrill Gorcunov <gorcu...@gmail.com>
> ---
>  mm/shmem.c |   16 ++++++++++------
>  1 files changed, 10 insertions(+), 6 deletions(-)
> 
> diff --git a/mm/shmem.c b/mm/shmem.c
> index f00c1c1..b4d44db 100644
> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -883,16 +883,20 @@ redirty:
>  
>  #ifdef CONFIG_NUMA
>  #ifdef CONFIG_TMPFS
> -static void shmem_show_mpol(struct seq_file *seq, struct mempolicy *mpol)
> +static int shmem_show_mpol(struct seq_file *seq, struct mempolicy *mpol)
>  {
>       char buffer[64];
> +     int ret;
>  
>       if (!mpol || mpol->mode == MPOL_DEFAULT)
> -             return;         /* show nothing */
> +             return 0;               /* show nothing */
>  
> -     mpol_to_str(buffer, sizeof(buffer), mpol);
> +     ret = mpol_to_str(buffer, sizeof(buffer), mpol);
> +     if (ret < 0)
> +             return ret;
>  
>       seq_printf(seq, ",mpol=%s", buffer);
> +     return 0;
>  }
>  
>  static struct mempolicy *shmem_get_sbmpol(struct shmem_sb_info *sbinfo)
> @@ -951,8 +955,9 @@ static struct page *shmem_alloc_page(gfp_t gfp,
>  }
>  #else /* !CONFIG_NUMA */
>  #ifdef CONFIG_TMPFS
> -static inline void shmem_show_mpol(struct seq_file *seq, struct mempolicy 
> *mpol)
> +static inline int shmem_show_mpol(struct seq_file *seq, struct mempolicy 
> *mpol)
>  {
> +     return 0;
>  }
>  #endif /* CONFIG_TMPFS */
>  
> @@ -2555,8 +2560,7 @@ static int shmem_show_options(struct seq_file *seq, 
> struct dentry *root)
>       if (!gid_eq(sbinfo->gid, GLOBAL_ROOT_GID))
>               seq_printf(seq, ",gid=%u",
>                               from_kgid_munged(&init_user_ns, sbinfo->gid));
> -     shmem_show_mpol(seq, sbinfo->mpol);
> -     return 0;
> +     return shmem_show_mpol(seq, sbinfo->mpol);
>  }
>  #endif /* CONFIG_TMPFS */
>  
> 


-- 
Chen Gang
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to