if (conn->c_stage != ISCSI_CONN_INITIAL_STAGE && conn->stop_stage != STOP_CONN_RECOVER && conn->hdrdgst_en) iscsi_hdr_digest(conn, &mtask->headbuf, (u8*)mtask->hdrext); 
iscsi_mtask_xmit(struct iscsi_conn *conn, struct iscsi_mgmt_task *mtask){	debug_scsi("mtask deq [cid %d state %x itt 0x%x]\n",		conn->id, mtask->xmstate, mtask->itt);	if (mtask->xmstate & XMSTATE_IMM_HDR) {		mtask->xmstate &= ~XMSTATE_IMM_HDR;		if (mtask->data_count)			mtask->xmstate |= XMSTATE_IMM_DATA;		if (iscsi_sendhdr(conn, &mtask->headbuf, mtask->data_count)) {			mtask->xmstate |= XMSTATE_IMM_HDR;			if (mtask->data_count)				mtask->xmstate &= ~XMSTATE_IMM_DATA;			return -EAGAIN;		}	}	if (mtask->xmstate & XMSTATE_IMM_DATA) {		BUG_ON(!mtask->data_count);		mtask->xmstate &= ~XMSTATE_IMM_DATA;		/* FIXME: implement.		 * Virtual buffer could be spreaded across multiple pages...		 */		do {			if (iscsi_sendpage(conn, &mtask->sendbuf,				   &mtask->data_count, &mtask->sent)) {				mtask->xmstate |= XMSTATE_IMM_DATA;				return -EAGAIN;			}		} while (mtask->data_count);	}	BUG_ON(mtask->xmstate != XMSTATE_IDLE);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/af973481f4a0902ad35726636c290f4794704948/iscsi_tcp.c/clean/drivers/scsi/iscsi_tcp.c