[OpenAFS] Re: openafs hang

Simon Wilkinson simonxwilkinson@gmail.com
Tue, 4 Sep 2012 16:50:01 +0100

On 4 Sep 2012, at 16:38, Marc Dionne wrote:
> That's very useful.  It looks like dput gets called with the global
> lock held, and it can potentially call back into AFS code through
> afs_dentry_iput.
> Might have to look at the afs_syscall_pioctl in more detail (it's
> heavily ifdef'ed and hard to follow), but at first glance the call to
> dput() there should probably be done after dropping the lock, so
> surround it with a AFS_GUNLOCK() and AFS_GLOCK() pair.

We definitely shouldn't be holding the GLOCK when we call back into the =
kernel, so I think your analysis is correct. As far as I can tell, there =
should be no harm in dropping and regaining the GLOCK around the dput - =
we don't seem to be holding onto anything that could be affected by =
other threads whilst the lock is dropped.

And yeah, that function is truly horrific.