xfs_repair stops on "traversing filesystem..."
Eric Sandeen
sandeen at sandeen.net
Fri Jul 10 15:17:08 CDT 2009
Tomek Kruszona wrote:
> Eric Sandeen wrote:
>> No fix for you yet, but it's in cache_node_get(), in the for(;;) loop,
>> and it looks like cache_node_allocate() fails to get a new node and we
>> keep spinning. I need to look some more at what's going on....
>
> Hello!
>
> Is this specific behavior for this particular broken filesystem or is it
> a bug in functions you mentioned? I'm just curious :)
This looks like some of the caching that xfs_repair does is mis-sized,
and it gets stuck when it's unable to find a slot for a new node to
cache. IMHO that's still a bug that I'd like to work out. If it gets
stuck this way, it'd probably be better to exit, and suggest a larger
hash size.
But anyway, I forced a bigger hash size:
xfs_repair -P -o bhash=1024 <blah>
and it did complete. 1024 is probably over the top, but it worked for
me on a 4G machine w/ some swap.
I'd strongly suggest doing a non-obfuscated xfs_metadump, do
xfs_mdrestore of that to some temp.img, run xfs_repair <blah> on that
temp.img, mount it, and see what you're left with; that way you'll know
what you're getting into w/ repair.
I ended up w/ about 5000 files in lost+found just FWIW...
Out of curiosity, do you know how the fs was damaged?
-Eric
More information about the xfs
mailing list