[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: jffs_erasable_size: offset = 0x0034b000



It seems to be not 2.3-only bug. At least with 2.2.12 I've faced the same
problem.

David Woodhouse wrote:

> simonk@xxxxxxx.com said:
> >  What bug fix is that?
>
> I didn't forward it because the change entry says it's a 2.3-only bug.
>
> revision 1.17
> date: 2000/07/06 20:35:19;  author: prumpf;  state: Exp;  lines: +5 -2
> Fixed 2.3-only race (write_super was called while we're doing a garbage
> collection and started another garbage collection which resulted in us
> erasing the same memory twice).  Not using atomic operations for no_call_gc
> still looks racy to me.
>
> --- inode-v23.c 2000/07/06 14:38:10     1.16
> +++ inode-v23.c 2000/07/06 20:35:19     1.17
> @@ -1540,7 +1540,10 @@
>  jffs_write_super(struct super_block *sb)
>  {
>  #ifdef USE_GC
> -       jffs_garbage_collect((struct jffs_control *)sb->u.generic_sbp);
> +       struct jffs_control *c = (struct jffs_control *)sb->u.generic_sbp;
> +
> +       if(!c->fmc->no_call_gc)
> +               jffs_garbage_collect(c);
>  #endif
>  }
>
>
> --
> dwmw2