summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiels de Vos <ndevos@redhat.com>2014-01-23 18:18:02 +0100
committerVijay Bellur <vbellur@redhat.com>2014-01-24 01:24:50 -0800
commit8a8d5b50dd37732d1fdd56e8fc079ca73513e64f (patch)
tree87cbfa78b0232c9a010bf8660f7340581be228ae
parentcd65bab3a1586e03178e8b683afea26bd324a71b (diff)
protocol: pass the size of the data in the WRITE on-wire FOP
Capturing GlusterFS traffic with tcpdump and displaying it in Wireshark shows that the size of all WRITEs are 0 bytes. It seems that the attribute is not used, and the size is calculated an other way. Even if the size attribute is not used (yet), it should be set correctly to prevent confusing while debugging network traffic with Wireshark or other tools. Note that the on-wire format is not being changed with this patch. The size is already part of the structure that is exchanged between the client and server. Change-Id: I4a1729a8e154a6fed4f8baa10ef3009d4df040cf Master-Change-Id: I9d67fe17bf203672116dea4948328e2af4004677 Master-Reviewed-on: http://review.gluster.org/6766 BUG: 1057264 Signed-off-by: Niels de Vos <ndevos@redhat.com> Reviewed-on: http://review.gluster.org/6768 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Vikhyat Umrao <vumrao@redhat.com>
-rw-r--r--xlators/protocol/client/src/client.c1
-rw-r--r--xlators/protocol/server/src/server-rpc-fops.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c
index ac3fcb117..adb5801ad 100644
--- a/xlators/protocol/client/src/client.c
+++ b/xlators/protocol/client/src/client.c
@@ -943,6 +943,7 @@ client_writev (call_frame_t *frame, xlator_t *this, fd_t *fd,
args.vector = vector;
args.count = count;
args.offset = off;
+ args.size = iov_length (vector, count);
args.flags = flags;
args.iobref = iobref;
args.xdata = xdata;
diff --git a/xlators/protocol/server/src/server-rpc-fops.c b/xlators/protocol/server/src/server-rpc-fops.c
index d43571e87..c56da30a7 100644
--- a/xlators/protocol/server/src/server-rpc-fops.c
+++ b/xlators/protocol/server/src/server-rpc-fops.c
@@ -3735,6 +3735,7 @@ server3_3_writev (rpcsvc_request_t *req)
state->resolve.type = RESOLVE_MUST;
state->resolve.fd_no = args.fd;
state->offset = args.offset;
+ state->size = args.size;
state->flags = args.flag;
state->iobref = iobref_ref (req->iobref);
memcpy (state->resolve.gfid, args.gfid, 16);