From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from co202.xi-lite.net ([149.6.83.202]) by bombadil.infradead.org with esmtp (Exim 4.72 #1 (Red Hat Linux)) id 1OzAFS-0003c6-Hr for linux-mtd@lists.infradead.org; Fri, 24 Sep 2010 15:31:43 +0000 Message-ID: <4C9CC455.3000404@parrot.com> Date: Fri, 24 Sep 2010 17:31:33 +0200 From: Matthieu CASTET MIME-Version: 1.0 To: "dedekind1@gmail.com" Subject: Re: ubifs : corruption after power cut test References: <4C346D5B.2000609@parrot.com> <4C3C1572.8080501@parrot.com> <4C3C2740.2040105@parrot.com> <4C3C30D1.9030005@parrot.com> <1279031064.31639.90.camel@localhost> <4C3C81E3.3030407@parrot.com> <4C4FDEF5.2040405@parrot.com> <1282463086.16502.38.camel@brekeke> In-Reply-To: <1282463086.16502.38.camel@brekeke> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit Cc: "linux-mtd@lists.infradead.org" List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Artem Bityutskiy a écrit : > On Wed, 2010-07-28 at 09:40 +0200, Matthieu CASTET wrote: >> I manage to reproduce it with the backtrace [1]. > > Matthieu, your work-around patch or something very close should > certainly be applied to the UBIFS tree, but I still would like to find > out what exactly happened in your setup. > > I see 2 possibilities: > > 1. An error happened and 'ubifs_garbage_collect()' returned while > c->gc_lnum was -1. But in this case we should have switched to R/O mode, > and the master node would not be written. But may be for some reasons we > did not switch to R/O mode, dunno. > > 2. More likely scenario: in 'ubifs_rcvry_gc_commit()' we call > 'ubifs_garbage_collect_leb()' directly, which can return while > c->gc_lnum is -1. And we do not handle this. > > Would you please be patient enough to reproduce the issue once again with > the following patch, which was created against the latest ubifs-2.6.git, but > you should be easily able to apply it to your tree. None of these check happen. only the dump in ubifs_write_master. Matthieu