Hi Chao,

On Thu, Jul 09, 2015 at 06:20:08PM +0800, Chao Yu wrote:
> get_new_data_page should release inode page when we encounter any
> error in its procedure, but there is one error path didn't cover
> this, fix it.

Nice catch.
But, I think we should fix its caller:

in init_inode_metadata(),
        err = make_empty_dir();
        if (err)
                goto put_error;
                ---------------
Thanks,

> 
> Signed-off-by: Chao Yu <[email protected]>
> ---
>  fs/f2fs/data.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
> index 08dfdc6..ea8898b 100644
> --- a/fs/f2fs/data.c
> +++ b/fs/f2fs/data.c
> @@ -397,8 +397,10 @@ struct page *get_new_data_page(struct inode *inode,
>       int err;
>  repeat:
>       page = grab_cache_page(mapping, index);
> -     if (!page)
> +     if (!page) {
> +             f2fs_put_page(ipage, 1);
>               return ERR_PTR(-ENOMEM);
> +     }
>  
>       set_new_dnode(&dn, inode, ipage, NULL, 0);
>       err = f2fs_reserve_block(&dn, index);
> -- 
> 2.4.2
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
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