diff options
author | Amar Tumballi <amarts@redhat.com> | 2019-04-20 11:55:12 +0530 |
---|---|---|
committer | Amar Tumballi <amarts@redhat.com> | 2019-04-29 05:29:44 +0000 |
commit | 48d160756813875cf1889b4ce96493d25f96c726 (patch) | |
tree | 92349106820659f831f295e214335a0297a4ba48 /xlators/protocol/server/src/server.h | |
parent | 88418f400507fba109971f169ce0a2c4243a31c9 (diff) |
protocol: remove compound fop
Compound fops are kept on wire as a backward compatibility with
older AFR modules. The AFR module used beyond 4.x releases are
not using compound fops. Hence removing the compound fop in the
protocol code.
Note that, compound-fops was already an 'option' in AFR, and
completely removed since 4.1.x releases.
So, point to note is, with this change, we have 2 ways to upgrade
when clients of 3.x series are present.
i) set 'use-compound-fops' option to 'false' on any volume which
is of replica type. And then upgrade the servers.
ii) Do a two step upgrade. First from current version (which will
already be EOL if it's using compound) to a 4.1..6.x version,
and then an upgrade to 7.x.
Consider the overall code which we are removing for the option
seems quite high, I believe it is worth it.
updates: bz#1693692
Signed-off-by: Amar Tumballi <amarts@redhat.com>
Change-Id: I0a8876d0367a15e1410ec845f251d5d3097ee593
Diffstat (limited to 'xlators/protocol/server/src/server.h')
-rw-r--r-- | xlators/protocol/server/src/server.h | 61 |
1 files changed, 1 insertions, 60 deletions
diff --git a/xlators/protocol/server/src/server.h b/xlators/protocol/server/src/server.h index bdf98c96f1c..ab05b4ffe6d 100644 --- a/xlators/protocol/server/src/server.h +++ b/xlators/protocol/server/src/server.h @@ -31,55 +31,6 @@ #define GF_MAX_SOCKET_WINDOW_SIZE (1 * GF_UNIT_MB) #define GF_MIN_SOCKET_WINDOW_SIZE (0) -#define CPD_REQ_FIELD(v, f) ((v)->compound_req_u.compound_##f##_req) -#define CPD_RSP_FIELD(v, f) ((v)->compound_rsp_u.compound_##f##_rsp) - -#define SERVER_COMMON_RSP_CLEANUP(rsp, fop, i) \ - do { \ - compound_rsp *this_rsp = NULL; \ - this_rsp = &rsp->compound_rsp_array.compound_rsp_array_val[i]; \ - gf_common_rsp *_this_rsp = &CPD_RSP_FIELD(this_rsp, fop); \ - \ - GF_FREE(_this_rsp->xdata.xdata_val); \ - } while (0) - -#define SERVER_FOP_RSP_CLEANUP(rsp, fop, i) \ - do { \ - compound_rsp *this_rsp = NULL; \ - this_rsp = &rsp->compound_rsp_array.compound_rsp_array_val[i]; \ - gfs3_##fop##_rsp *_this_rsp = &CPD_RSP_FIELD(this_rsp, fop); \ - \ - GF_FREE(_this_rsp->xdata.xdata_val); \ - } while (0) - -#define SERVER_COMPOUND_FOP_CLEANUP(curr_req, fop) \ - do { \ - gfs3_##fop##_req *_req = &CPD_REQ_FIELD(curr_req, fop); \ - \ - free(_req->xdata.xdata_val); \ - } while (0) - -#define CPD4_REQ_FIELD(v, f) ((v)->compound_req_v2_u.compound_##f##_req) -#define CPD4_RSP_FIELD(v, f) ((v)->compound_rsp_v2_u.compound_##f##_rsp) - -#define SERVER4_COMMON_RSP_CLEANUP(rsp, fop, i) \ - do { \ - compound_rsp_v2 *this_rsp = NULL; \ - this_rsp = &rsp->compound_rsp_array.compound_rsp_array_val[i]; \ - gfx_common_rsp *_this_rsp = &CPD4_RSP_FIELD(this_rsp, fop); \ - \ - GF_FREE(_this_rsp->xdata.pairs.pairs_val); \ - } while (0) - -#define SERVER4_FOP_RSP_CLEANUP(rsp, fop, i, rsp_type) \ - do { \ - compound_rsp_v2 *this_rsp = NULL; \ - this_rsp = &rsp->compound_rsp_array.compound_rsp_array_val[i]; \ - gfx_##rsp_type##_rsp *_this_rsp = &CPD4_RSP_FIELD(this_rsp, fop); \ - \ - GF_FREE(_this_rsp->xdata.pairs.pairs_val); \ - } while (0) - typedef enum { INTERNAL_LOCKS = 1, POSIX_LOCKS = 2, @@ -225,21 +176,11 @@ struct _server_state { mode_t umask; struct gf_lease lease; lock_migration_info_t locklist; - /* required for compound fops */ - gfs3_compound_req req; - /* TODO: having xdr definition here - is not a good idea, but not taking - up the functionality right now */ - gfx_compound_req req_v2; - - /* last length till which iovec for compound - * writes was processed */ - int write_length; + struct iovec rsp_vector[MAX_IOVEC]; int rsp_count; struct iobuf *rsp_iobuf; struct iobref *rsp_iobref; - compound_args_t *args; /* subdir mount */ client_t *client; |