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); } -- Ben Greear <greearb@xxxxxxxxxxxxxxx> Candela Technologies Inc http://www.candelatech.com -- 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