Questionable comment for rpc_execute()
Subsystems (2)
The comment below says that task is guaranteed to be freed, but that appears only true for non-async tasks.
Also, should we lock task->tk_waitqueue before calling rpc_make_runnable (at least for async tasks)? I'm basing this question on comments for rpc_make_runnable claiming to need the spinlock held for the wait-queue for async tasks.
/*
* User-visible entry point to the scheduler.
*
* This may be called recursively if e.g. an async NFS task updates
* the attributes and finds that dirty pages must be flushed.
* NOTE: Upon exit of this function the task is guaranteed to be
* released. In particular note that tk_release() will have
* been called, so your task memory may have been freed.
*/
void rpc_execute(struct rpc_task *task)
{
rpc_set_active(task);
rpc_make_runnable(task);
if (!RPC_IS_ASYNC(task))
__rpc_execute(task);
}Signature · 2 lines
Ben Greear <[email protected]> Candela Technologies Inc http://www.candelatech.com