[OpenAFS-devel] deadlock on linux-2.4
Pavel Semerad
semerad@ss1000.ms.mff.cuni.cz
Wed, 5 Jun 2002 17:49:52 +0200
> > I have found more info and created a temorary hack, which fixes it,
> > but it will not be probably the correct solution.
>
> Thanks for tracking this down. As you point out, we shouldn't obtain
> vcache locks while holding any dcache locks, due to lock ordering.
> The right solution is probably to delay calling afs_ProcessFS() until
> after we've released the dcache entries; can you try the patch below
> and see if it works for you?
It's OK. Tested on UP machine. I cannot test it on SMP now.
>
> > I don't know why other architectures are OK, may be it is not possible
> > to call afs_StoreAllSegment and afs_UFSRead together on them.
>
> I suspect other architectures also have the same bug. Note that this
> only affects the development branch (the dcache locking code has only
> been added recently), which is probably why this bug hasn't been seen
> by others yet.
I have older version on other architectures, this is why it worked :-)
>
> -- kolya
>
Pavel