From 89b3466373191b7d2f0001778308b2393ea74da6 Mon Sep 17 00:00:00 2001 From: Amar Tumballi Date: Thu, 24 May 2012 12:58:04 +0530 Subject: rpc: fix the vecsizer issue * currently, we needed 'base-address' of the header for glusterfs writev vecsizer and 'current-address' of the buffer which is reading the data on socket, for nfs write vecsizer. * nfs write issues started coming after http://review.gluster.com/3182 was pushed into repo, now fixed. * fixed by sending both as argument for vecsizer from the transport Change-Id: I6db360ce265ce5f083f1794ebdb3867f8cfad9ec Signed-off-by: Amar Tumballi BUG: 824472 Reviewed-on: http://review.gluster.com/3431 Tested-by: Gluster Build System Reviewed-by: Jeff Darcy Reviewed-by: Anand Avati --- xlators/protocol/server/src/server3_1-fops.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'xlators/protocol/server') diff --git a/xlators/protocol/server/src/server3_1-fops.c b/xlators/protocol/server/src/server3_1-fops.c index 06283461d06..166f720941a 100644 --- a/xlators/protocol/server/src/server3_1-fops.c +++ b/xlators/protocol/server/src/server3_1-fops.c @@ -3431,7 +3431,8 @@ server_writev_vec (rpcsvc_request_t *req, struct iovec *payload, #define SERVER3_1_VECWRITE_READING_OPAQUE 2 int -server_writev_vecsizer (int state, ssize_t *readsize, char *addr) +server_writev_vecsizer (int state, ssize_t *readsize, char *base_addr, + char *curr_addr) { ssize_t size = 0; int nextstate = 0; @@ -3449,7 +3450,7 @@ server_writev_vecsizer (int state, ssize_t *readsize, char *addr) size = xdr_sizeof ((xdrproc_t) xdr_gfs3_write_req, &write_req); - xdrmem_create (&xdr, addr, size, XDR_DECODE); + xdrmem_create (&xdr, base_addr, size, XDR_DECODE); /* This will fail if there is xdata sent from client, if not, well and good */ -- cgit