On Thu, Oct 9, 2014 at 12:02 PM, Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > On Wed, Oct 08, 2014 at 04:46:40PM -0400, Trond Myklebust wrote: >> You cannot call pnfs_put_lseg_async() more than once per lseg, so it >> is really an inappropriate way to deal with a refcount issue. >> >> Instead, replace it with a function that decrements the refcount, and >> puts the final 'free' operation (which is incompatible with locks) on >> the workqueue. > > How about calling the clear_request_commit layout driver operation > from a workqueue? That seems like a much saner approach. That unfortunately suffers from worse problems that above. We'd have to embed a struct work in the nfs_page (which is already a little on the large size), and we'd still have no guarantee that clear_request_commit would be complete if we need to call it twice (which can happen). -- Trond Myklebust Linux NFS client maintainer, PrimaryData trond.myklebust@xxxxxxxxxxxxxxx -- 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