From e4240431b033d1f0c351d3d874c248126ca6cadc Mon Sep 17 00:00:00 2001 From: Amar Tumballi Date: Tue, 10 Oct 2017 17:13:25 +0530 Subject: 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 BUG: 827334 Change-Id: Id0a2da3632516dc1a5560dde2b151b2e5f0be8e5 --- rpc/rpc-lib/src/protocol-common.h | 2 ++ rpc/xdr/gen/Makefile.am | 2 +- rpc/xdr/src/Makefile.am | 2 +- rpc/xdr/src/glusterfs3.h | 1 + rpc/xdr/src/glusterfs4-xdr.x | 33 +++++++++++++++++++++++++++++++++ 5 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 rpc/xdr/src/glusterfs4-xdr.x (limited to 'rpc') 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. + * 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 */ +} ; -- cgit