On 7/25/18 6:53 PM, Frank Filz wrote:
I have done some work for async processing in nfs4_Compound.c and
nfs_worker_thread.c, but what we need to actually be able to return from the request
processing call stack without completing the request is to have async support at the RPC
layer.
We already have async support at the RPC layer.
Fundamentally, in order to not leave a worker thread blocked on FSAL
I/O, we need to be able to return all the way up the stack without actually retiring the
request…
The svc_req is already ref counted.
If you're handing off to an async-capable FSAL, just ref it before.
The top half processing will return gracefully.
The bottom half will release it after sending the output.
Everything is already in place.