[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
The following reply was made to PR kern/47231; it has been noted by GNATS.
From: David Holland <dholland-bugs%netbsd.org@localhost>
Subject: Re: kern/47231
Date: Sat, 26 Apr 2014 05:51:32 +0000
On Wed, Dec 25, 2013 at 11:15:01AM +0000, pedro martelletto wrote:
> As mentioned previously, this problem is indeed caused by metadata
> pointers making it to disk before the newly allocated data blocks that
> they point to.
> The issue is further aggravated by WAPBL, since there are situations
> where the journal is pushed to disk while regular file data is not,
> which means there is a higher probability that, upon log replay, the
> pointers in the inode will be updated to reflect an ongoing allocation
> at the time of the crash.
> Alternatives that come to my mind are a) to have these data blocks added
> to the journal, since they are needed to preserve file system integrity;
> or b) ensure they are pushed to disk every time the journal is flushed.
> None of them strike me as particularly appealing, though. Any ideas?
What ext3 does is force these blocks to disk in advance of the journal
entries that point to them. Doing this in wapbl has been looked at (by
Joerg, iirc) with the conclusion that it would be hard.
My conclusion is that in the long run we need a different file
system, but I haven't had any time whatsoever to act on this. :-/
If anyone wants to work on it, btw, I have a copy of the Harvard
journaling ffs, which is fundamentally different from wapbl and
(AFAIK) doesn't have this problem. However, it was originally written
against BSD/OS a long time ago and will need a lot of merging and
fixing to even compile.
David A. Holland
Main Index |
Thread Index |