if (task == NULL) return 0; 
__xprt_lock_write(struct rpc_xprt *xprt, struct rpc_task *task){	struct rpc_rqst *req = task->tk_rqstp;	if (test_and_set_bit(XPRT_LOCKED, &xprt->sockstate)) {		if (task == xprt->snd_task)			return 1;		if (task == NULL)			return 0;		goto out_sleep;	}	if (xprt->nocong || __xprt_get_cong(xprt, task)) {		xprt->snd_task = task;		if (req) {			req->rq_bytes_sent = 0;			req->rq_ntrans++;		}		return 1;	}	smp_mb__before_clear_bit();	clear_bit(XPRT_LOCKED, &xprt->sockstate);	smp_mb__after_clear_bit();out_sleep:	dprintk("RPC: %4d failed to lock socket %p\n", task->tk_pid, xprt);	task->tk_timeout = 0;	task->tk_status = -EAGAIN;	if (req && req->rq_ntrans)		rpc_sleep_on(&xprt->resend, task, NULL, NULL);	else		rpc_sleep_on(&xprt->sending, task, NULL, NULL);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/7e8d7e3c9e38dab8d28a8667faa4941842f64213/xprt.c/clean/net/sunrpc/xprt.c