On Fri, Jan 04, 2013 at 06:52:12PM +0000, Myklebust, Trond wrote: > On Fri, 2013-01-04 at 13:29 -0500, Bruce Fields wrote: > > On Fri, Jan 04, 2013 at 01:15:01PM -0500, Trond Myklebust wrote: > > > This patch ensures that we free the rpc_task after the cleanup callbacks > > > are done in order to avoid a deadlock problem that can be triggered if > > > the callback needs to wait for another workqueue item to complete. > > > > Makes sense to me! > > > > (Dumb question: so read and write data are the only two cases where the > > calldata embeds an rpc task? Why is that?) > > nfs_commit_data and nfs_layoutcommit_data do too. The idea is to improve > reliability when writing back dirty data in low memory conditions. The > struct nfs_write_data and nfs_commit_data have their own mempool in > order to guarantee a minimum number of available slots. By embedding the > rpc_task, we can extend that guarantee to cover (part of) the RPC call > too. > > The only reason why nfs_read_data has the same embedding is for symmetry > with nfs_write_data. OK, thanks for the explanation. --b. -- 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