On Tuesday February 19, [EMAIL PROTECTED] wrote:
> How about moving the offending mntput calls off rpciod altogether? That
> way we can avoid both the deadlock with rpc_shutdown_client() and the
> deadlock with nfs_put_super().
> The other advantage of doing this is that we move all those deadlocky
> little malloc() calls from the NFSv4 open(), close(), lock(), and
> locku() out of rpciod too. Ditto for the delegation return stuff that
> may result from the dput() calls...

Yes, that sounds like a reasonable approach.

Adding extra threads is not something I would want to do too lightly,
but it does seem reasonably justified here.

> 
> The way I'm attempting to do this, is to add something like the
> following patch series (which has been compile tested, but not
> run-tested quite yet). It basically creates an 'nfsiod' workqueue, and
> allows the NFS read/write/... code to specify that the
> tk_ops->rpc_release() callback should be run on that particular
> workqueue. It then moves all the mntput()/dput() stuff into the
> rpc_release() call...

Seems to make sense, but I'm not really familiar enough with the code
to be sure.


Thanks,
NeilBrown
-
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to