Skip to contentSkip to conversation

Questionable comment for rpc_execute()

DISCUSSION Ben Greear 1 participant 1 message Jun 30, 2011

Subsystems (2)
lore
Share & tools
lore

Ben Greear

author
#0 lore raw

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