9pfs: fix offset error in v9fs_xattr_read()
commitfa0eb5c512d17a223d9f9bac45da48d78d12f584
authorGreg Kurz <groug@kaod.org>
Tue, 24 Jan 2017 23:23:49 +0000 (25 00:23 +0100)
committerGreg Kurz <groug@kaod.org>
Wed, 25 Jan 2017 08:34:35 +0000 (25 09:34 +0100)
tree2f4ad581dbc2e494ec8840e76380a8e5202d8c82
parent6fe76acc2d0fcadb1d827cffffab81d6c8d66704
9pfs: fix offset error in v9fs_xattr_read()

The current code tries to copy `read_count' bytes starting at offset
`offset' from a `read_count`-sized iovec. This causes v9fs_pack() to
fail with ENOBUFS.

Since the PDU iovec is already partially filled with `offset' bytes,
let's skip them when creating `qiov_full' and have v9fs_pack() to
copy the whole of it. Moreover, this is consistent with the other
places where v9fs_init_qiov_from_pdu() is called.

This fixes commit "bcb8998fac16 9pfs: call v9fs_init_qiov_from_pdu
before v9fs_pack".

Signed-off-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
hw/9pfs/9p.c