From: Wei Liu <wei.liu2@citrix.com>
To: qemu-devel@nongnu.org
Cc: Wei Liu <wei.liu2@citrix.com>,
"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
Greg Kurz <gkurz@linux.vnet.ibm.com>
Subject: [Qemu-devel] [PATCH v3 2/3] 9pfs: use V9fsBlob to transmit xattr
Date: Mon, 11 Jan 2016 09:29:36 +0000 [thread overview]
Message-ID: <1452504577-26751-3-git-send-email-wei.liu2@citrix.com> (raw)
In-Reply-To: <1452504577-26751-1-git-send-email-wei.liu2@citrix.com>
And make v9fs_pack static function. Now we only need to export
v9fs_{,un}marshal to device.
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
v3: fix bug discovered by Aneesh
---
fsdev/9p-iov-marshal.c | 4 ++--
fsdev/9p-iov-marshal.h | 3 ---
hw/9pfs/9p.c | 21 +++++++++++++--------
3 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/fsdev/9p-iov-marshal.c b/fsdev/9p-iov-marshal.c
index 1f9edf3..5c911c8 100644
--- a/fsdev/9p-iov-marshal.c
+++ b/fsdev/9p-iov-marshal.c
@@ -70,8 +70,8 @@ static ssize_t v9fs_unpack(void *dst, struct iovec *out_sg, int out_num,
return v9fs_packunpack(dst, out_sg, out_num, offset, size, 0);
}
-ssize_t v9fs_pack(struct iovec *in_sg, int in_num, size_t offset,
- const void *src, size_t size)
+static ssize_t v9fs_pack(struct iovec *in_sg, int in_num, size_t offset,
+ const void *src, size_t size)
{
return v9fs_packunpack((void *)src, in_sg, in_num, offset, size, 1);
}
diff --git a/fsdev/9p-iov-marshal.h b/fsdev/9p-iov-marshal.h
index 6bccbfb..410a1ea 100644
--- a/fsdev/9p-iov-marshal.h
+++ b/fsdev/9p-iov-marshal.h
@@ -3,9 +3,6 @@
#include "9p-marshal.h"
-
-ssize_t v9fs_pack(struct iovec *in_sg, int in_num, size_t offset,
- const void *src, size_t size);
ssize_t v9fs_iov_unmarshal(struct iovec *out_sg, int out_num, size_t offset,
int bswap, const char *fmt, ...);
ssize_t v9fs_iov_marshal(struct iovec *in_sg, int in_num, size_t offset,
diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
index a904403..84cb1d9 100644
--- a/hw/9pfs/9p.c
+++ b/hw/9pfs/9p.c
@@ -1585,6 +1585,7 @@ static int v9fs_xattr_read(V9fsState *s, V9fsPDU *pdu, V9fsFidState *fidp,
size_t offset = 7;
int read_count;
int64_t xattr_len;
+ V9fsBlob blob;
xattr_len = fidp->fs.xattr.len;
read_count = xattr_len - off;
@@ -1596,14 +1597,18 @@ static int v9fs_xattr_read(V9fsState *s, V9fsPDU *pdu, V9fsFidState *fidp,
*/
read_count = 0;
}
- err = pdu_marshal(pdu, offset, "d", read_count);
- if (err < 0) {
- return err;
- }
- offset += err;
- err = v9fs_pack(pdu->elem.in_sg, pdu->elem.in_num, offset,
- ((char *)fidp->fs.xattr.value) + off,
- read_count);
+
+ v9fs_blob_init(&blob);
+
+ blob.data = g_malloc(read_count);
+ memcpy(blob.data, ((char *)fidp->fs.xattr.value) + off,
+ read_count);
+ blob.size = read_count;
+
+ err = pdu_marshal(pdu, offset, "B", &blob);
+
+ v9fs_blob_free(&blob);
+
if (err < 0) {
return err;
}
--
2.1.4
next prev parent reply other threads:[~2016-01-11 9:29 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-11 9:29 [Qemu-devel] [PATCH v3 0/3] 9pfs: disentangling virtio and generic code Wei Liu
2016-01-11 9:29 ` [Qemu-devel] [PATCH v3 1/3] fsdev: 9p-marshal: introduce V9fsBlob Wei Liu
2016-01-11 9:29 ` Wei Liu [this message]
2016-01-11 13:56 ` [Qemu-devel] [PATCH v3 2/3] 9pfs: use V9fsBlob to transmit xattr Aneesh Kumar K.V
2016-01-11 14:05 ` Wei Liu
2016-01-11 14:26 ` Aneesh Kumar K.V
2016-01-11 15:02 ` Wei Liu
2016-01-11 9:29 ` [Qemu-devel] [PATCH v3 3/3] 9pfs: introduce V9fsVirtioState Wei Liu
2016-01-11 9:37 ` [Qemu-devel] [PATCH v3 0/3] 9pfs: disentangling virtio and generic code Wei Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1452504577-26751-3-git-send-email-wei.liu2@citrix.com \
--to=wei.liu2@citrix.com \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=gkurz@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).