Re: [PATCH 4/5] tools/kvm/9p: Fix the pdu len.

Sasha Levin
2011-06-19T06:41:53Z

On Sun, 2011-06-19 at 10:41 +0530, Aneesh Kumar K.V wrote:
> On Sat, 18 Jun 2011 14:51:19 -0400, Sasha Levin <levinsasha928@gmail.com> wrote:
> > On Sat, 2011-06-18 at 23:19 +0530, Aneesh Kumar K.V wrote:
> > > The TSTAT output formwat is wS. So not sure whey we
> > > need sizeof(u16)*2 in pdu length.
> >
> > See http://ericvh.github.com/9p-rfc/rfc9p2000.html#anchor32
> >
> > "BUGS
> >
> > To make the contents of a directory, such as returned by read(5),
> > easy to parse, each directory entry begins with a size field. For
> > consistency, the entries in Twstat and Rstat messages also contain their
> > size, which means the size appears twice. For example, the Rstat message
> > is formatted as ``(4+1+2+2+n)[4] Rstat tag[2] n[2] (n-2)[2] type[2]
> > dev[4]...,'' where n is the value returned by convD2M."
> >
>
> The value returned by virtio_p9_fill_stat will include the accounting
> for extra size field added to rstat reply. So we just need an additional
> sizeof(u16). Not sizeof(u16) * 2 right ?

virtio_p9_fill_stat() fills a stat structure as defined in section 13.9
of the RFC. rstat specifically requires an additional u16 before that
stat structure, so virtio_p9_fill_stat() doesn't take it into account.

Since that additional u16 is specific only to rstat - and is not needed
in other places which expect the stat structure (such as when reading a
directory), I wouldn't want virtio_p9_fill_stat() to take it into
account.

--

Sasha.