xprt_disconnect(xprt); 
static int xs_tcp_send_request(struct rpc_task *task){	struct rpc_rqst *req = task->tk_rqstp;	struct rpc_xprt *xprt = req->rq_xprt;	struct xdr_buf *xdr = &req->rq_snd_buf;	int status, retry = 0;	xs_encode_tcp_record_marker(&req->rq_snd_buf);	xs_pktdump("packet data:",				req->rq_svec->iov_base,				req->rq_svec->iov_len);	/* Continue transmitting the packet/record. We must be careful	 * to cope with writespace callbacks arriving _after_ we have	 * called sendmsg(). */	while (1) {		req->rq_xtime = jiffies;		status = xs_sendpages(xprt->sock, NULL, 0, xdr,						req->rq_bytes_sent);		dprintk("RPC:      xs_tcp_send_request(%u) = %d\n",				xdr->len - req->rq_bytes_sent, status);		if (unlikely(status < 0))			break;		/* If we've sent the entire packet, immediately		 * reset the count of bytes sent. */		req->rq_bytes_sent += status;		if (likely(req->rq_bytes_sent >= req->rq_slen)) {			req->rq_bytes_sent = 0;			return 0;		}		status = -EAGAIN;		if (retry++ > XS_SENDMSG_RETRY)			break;	}	switch (status) {	case -EAGAIN:		xs_nospace(task);		break;	case -ECONNREFUSED:	case -ECONNRESET:	case -ENOTCONN:	case -EPIPE:		status = -ENOTCONN;		break;	default:		dprintk("RPC:      sendmsg returned unrecognized error %d\n",			-status);		break;	}	return status;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/43118c29dea2b23798bd42a147015cceee7fa885/xprtsock.c/buggy/net/sunrpc/xprtsock.c