On Fri, 2013-01-04 at 13:29 -0500, Bruce Fields wrote: +AD4- On Fri, Jan 04, 2013 at 01:15:01PM -0500, Trond Myklebust wrote: +AD4- +AD4- This patch ensures that we free the rpc+AF8-task after the cleanup callbacks +AD4- +AD4- are done in order to avoid a deadlock problem that can be triggered if +AD4- +AD4- the callback needs to wait for another workqueue item to complete. +AD4- +AD4- Makes sense to me+ACE- +AD4- +AD4- (Dumb question: so read and write data are the only two cases where the +AD4- calldata embeds an rpc task? Why is that?) nfs+AF8-commit+AF8-data and nfs+AF8-layoutcommit+AF8-data do too. The idea is to improve reliability when writing back dirty data in low memory conditions. The struct nfs+AF8-write+AF8-data and nfs+AF8-commit+AF8-data have their own mempool in order to guarantee a minimum number of available slots. By embedding the rpc+AF8-task, we can extend that guarantee to cover (part of) the RPC call too. The only reason why nfs+AF8-read+AF8-data has the same embedding is for symmetry with nfs+AF8-write+AF8-data. -- Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust+AEA-netapp.com www.netapp.com -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html