summaryrefslogtreecommitdiffstats
path: root/rpc
diff options
context:
space:
mode:
authorAmar Tumballi <amarts@redhat.com>2017-10-10 17:13:25 +0530
committerAmar Tumballi <amarts@redhat.com>2017-11-07 07:53:55 +0000
commite4240431b033d1f0c351d3d874c248126ca6cadc (patch)
treed83c1dcb42fb8c6f7bd903422e8c351394124d52 /rpc
parent56aef68530b3bab27730aa62e4fbc513d3dba65f (diff)
rpc: bring a new protocol version
* xdr: add gfid to on wire format for fsetattr/rchecksum * as it is change in on wire XDR format, needed backward compatible RPC programs. Signed-off-by: Amar Tumballi <amarts@redhat.com> BUG: 827334 Change-Id: Id0a2da3632516dc1a5560dde2b151b2e5f0be8e5
Diffstat (limited to 'rpc')
-rw-r--r--rpc/rpc-lib/src/protocol-common.h2
-rw-r--r--rpc/xdr/gen/Makefile.am2
-rw-r--r--rpc/xdr/src/Makefile.am2
-rw-r--r--rpc/xdr/src/glusterfs3.h1
-rw-r--r--rpc/xdr/src/glusterfs4-xdr.x33
5 files changed, 38 insertions, 2 deletions
diff --git a/rpc/rpc-lib/src/protocol-common.h b/rpc/rpc-lib/src/protocol-common.h
index 80e1f6bc254..d4b64e16796 100644
--- a/rpc/rpc-lib/src/protocol-common.h
+++ b/rpc/rpc-lib/src/protocol-common.h
@@ -332,6 +332,8 @@ typedef enum gf_get_snapshot_info_type gf_get_snapshot_info_type;
#define GLUSTER_FOP_VERSION 330 /* 3.3.0 */
#define GLUSTER_FOP_PROCCNT GFS3_OP_MAXVALUE
+#define GLUSTER_FOP_VERSION_v2 400 /* 4.0.0 */
+
/* Aggregator */
#define GLUSTER_AGGREGATOR_PROGRAM 29852134 /* Completely random */
#define GLUSTER_AGGREGATOR_VERSION 1
diff --git a/rpc/xdr/gen/Makefile.am b/rpc/xdr/gen/Makefile.am
index b1c8e9333d6..c253e38275d 100644
--- a/rpc/xdr/gen/Makefile.am
+++ b/rpc/xdr/gen/Makefile.am
@@ -1,4 +1,4 @@
-XDRGENFILES = glusterfs3-xdr.x cli1-xdr.x nlm4-xdr.x nsm-xdr.x \
+XDRGENFILES = glusterfs3-xdr.x glusterfs4-xdr.x cli1-xdr.x nlm4-xdr.x nsm-xdr.x \
rpc-common-xdr.x glusterd1-xdr.x acl3-xdr.x portmap-xdr.x \
mount3udp.x changelog-xdr.x glusterfs-fops.x
XDRHEADERS = $(XDRGENFILES:.x=.h)
diff --git a/rpc/xdr/src/Makefile.am b/rpc/xdr/src/Makefile.am
index 77f545646d6..abf8ada9777 100644
--- a/rpc/xdr/src/Makefile.am
+++ b/rpc/xdr/src/Makefile.am
@@ -1,4 +1,4 @@
-XDRGENFILES = glusterfs3-xdr.x cli1-xdr.x nlm4-xdr.x nsm-xdr.x \
+XDRGENFILES = glusterfs3-xdr.x glusterfs4-xdr.x cli1-xdr.x nlm4-xdr.x nsm-xdr.x \
rpc-common-xdr.x glusterd1-xdr.x acl3-xdr.x portmap-xdr.x \
mount3udp.x changelog-xdr.x glusterfs-fops.x
XDRHEADERS = $(XDRGENFILES:.x=.h)
diff --git a/rpc/xdr/src/glusterfs3.h b/rpc/xdr/src/glusterfs3.h
index 3ca608467b9..0aa1ae80bf3 100644
--- a/rpc/xdr/src/glusterfs3.h
+++ b/rpc/xdr/src/glusterfs3.h
@@ -15,6 +15,7 @@
#include "xdr-generic.h"
#include "glusterfs3-xdr.h"
+#include "glusterfs4-xdr.h"
#include "iatt.h"
#include "protocol-common.h"
#include "upcall-utils.h"
diff --git a/rpc/xdr/src/glusterfs4-xdr.x b/rpc/xdr/src/glusterfs4-xdr.x
new file mode 100644
index 00000000000..6d0c500096b
--- /dev/null
+++ b/rpc/xdr/src/glusterfs4-xdr.x
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2012 Red Hat, Inc. <http://www.redhat.com>
+ * This file is part of GlusterFS.
+ *
+ * This file is licensed to you under your choice of the GNU Lesser
+ * General Public License, version 3 or any later version (LGPLv3 or
+ * later), or the GNU General Public License, version 2 (GPLv2), in all
+ * cases as published by the Free Software Foundation.
+ */
+
+#ifdef RPC_XDR
+%#include "rpc-pragmas.h"
+#endif
+%#include "compat.h"
+%#include "rpc-common-xdr.h"
+%#include "glusterfs-fops.h"
+%#include "glusterfs3-xdr.h"
+
+ struct gfs3_fsetattr_req_v2 {
+ opaque gfid[16];
+ hyper fd;
+ struct gf_iatt stbuf;
+ int valid;
+ opaque xdata<>; /* Extra data */
+} ;
+
+ struct gfs3_rchecksum_req_v2 {
+ opaque gfid[16];
+ hyper fd;
+ unsigned hyper offset;
+ unsigned int len;
+ opaque xdata<>; /* Extra data */
+} ;