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