[PATCH] UBIFS: Add log overlap assertions

hujianyang hujianyang at huawei.com
Tue Jul 29 18:32:29 PDT 2014


On 2014/7/29 18:20, hujianyang wrote:
> We use a circle area to record log node in ubifs. This log area
> should not be overlapped. But after researching the code, I found
> some condition may lead log head wrap log ltail. Although we've
> fixed the problems discovered, there may be some other issues still
> left.
> 
> This patch adds assertions when lhead changes to next leb to make
> sure ltail is not wrapped.
> 
> 
> Signed-off-by: hujianyang <hujianyang at huawei.com>
> ---
>  fs/ubifs/log.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/fs/ubifs/log.c b/fs/ubifs/log.c
> index 7e818ec..c14628f 100644
> --- a/fs/ubifs/log.c
> +++ b/fs/ubifs/log.c
> @@ -244,6 +244,7 @@ int ubifs_add_bud_to_log(struct ubifs_info *c, int jhead, int lnum, int offs)
> 
>         if (c->lhead_offs > c->leb_size - c->ref_node_alsz) {
>                 c->lhead_lnum = ubifs_next_log_lnum(c, c->lhead_lnum);
> +               ubifs_assert(c->lhead_lnum != c->ltail_lnum);
>                 c->lhead_offs = 0;
>         }
> 
> @@ -408,6 +409,7 @@ int ubifs_log_start_commit(struct ubifs_info *c, int *ltail_lnum)
>         /* Switch to the next log LEB */
>         if (c->lhead_offs) {
>                 c->lhead_lnum = ubifs_next_log_lnum(c, c->lhead_lnum);
> +               ubifs_assert(c->lhead_lnum != c->ltail_lnum);
>                 c->lhead_offs = 0;
>         }
> 

Forgive me. This patch is not created in right format.

Please drop it and I will resend a new one.




More information about the linux-mtd mailing list