rcall->params.rwalk.wqids = buf_alloc(bufp, 
rcall->params.rwalk.wqids = buf_alloc(dbufp, 
v9fs_deserialize_fcall(struct v9fs_session_info *v9ses, u32 msgsize,		       void *buf, u32 buflen, struct v9fs_fcall *rcall,		       int rcalllen){	struct cbuf buffer;	struct cbuf *bufp = &buffer;	struct cbuf dbuffer;	struct cbuf *dbufp = &dbuffer;	int i = 0;	buf_init(bufp, buf, buflen);	buf_init(dbufp, (char *)rcall + sizeof(struct v9fs_fcall),		 rcalllen - sizeof(struct v9fs_fcall));	rcall->size = msgsize;	rcall->id = buf_get_int8(bufp);	rcall->tag = buf_get_int16(bufp);	dprintk(DEBUG_CONV, "size %d id %d tag %d\n", rcall->size, rcall->id,		rcall->tag);	switch (rcall->id) {	default:		eprintk(KERN_ERR, "unknown message type: %d\n", rcall->id);		return -EPROTO;	case RVERSION:		rcall->params.rversion.msize = buf_get_int32(bufp);		rcall->params.rversion.version = buf_get_stringb(bufp, dbufp);		break;	case RFLUSH:		break;	case RATTACH:		rcall->params.rattach.qid.type = buf_get_int8(bufp);		rcall->params.rattach.qid.version = buf_get_int32(bufp);		rcall->params.rattach.qid.path = buf_get_int64(bufp);		break;	case RWALK:		rcall->params.rwalk.nwqid = buf_get_int16(bufp);		rcall->params.rwalk.wqids = buf_alloc(bufp,		      rcall->params.rwalk.nwqid * sizeof(struct v9fs_qid));		if (rcall->params.rwalk.wqids)			for (i = 0; i < rcall->params.rwalk.nwqid; i++) {				rcall->params.rwalk.wqids[i].type =				    buf_get_int8(bufp);				rcall->params.rwalk.wqids[i].version =				    buf_get_int16(bufp);				rcall->params.rwalk.wqids[i].path =				    buf_get_int64(bufp);			}		break;	case ROPEN:		rcall->params.ropen.qid.type = buf_get_int8(bufp);		rcall->params.ropen.qid.version = buf_get_int32(bufp);		rcall->params.ropen.qid.path = buf_get_int64(bufp);		rcall->params.ropen.iounit = buf_get_int32(bufp);		break;	case RCREATE:		rcall->params.rcreate.qid.type = buf_get_int8(bufp);		rcall->params.rcreate.qid.version = buf_get_int32(bufp);		rcall->params.rcreate.qid.path = buf_get_int64(bufp);		rcall->params.rcreate.iounit = buf_get_int32(bufp);		break;	case RREAD:		rcall->params.rread.count = buf_get_int32(bufp);		rcall->params.rread.data = buf_get_datab(bufp, dbufp,			rcall->params.rread.count);		break;	case RWRITE:		rcall->params.rwrite.count = buf_get_int32(bufp);		break;	case RCLUNK:		break;	case RREMOVE:		break;	case RSTAT:		buf_get_int16(bufp);		rcall->params.rstat.stat =		    deserialize_statb(v9ses, bufp, dbufp);		break;	case RWSTAT:		break;	case RERROR:		rcall->params.rerror.error = buf_get_stringb(bufp, dbufp);		if (v9ses->extended)			rcall->params.rerror.errno = buf_get_int16(bufp);		break;	}	if (buf_check_overflow(bufp) || buf_check_overflow(dbufp))		return -EIO;	return rcall->size;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/5b067676234715051cbde87083c36c8ea83f77b8/conv.c/clean/fs/9p/conv.c