diff options
author | Amar Tumballi <amarts@redhat.com> | 2017-12-22 11:34:22 +0530 |
---|---|---|
committer | Jeff Darcy <jeff@pl.atyp.us> | 2017-12-22 17:44:26 +0000 |
commit | f4734305783ce3aa10721bf2731923f6aa39252b (patch) | |
tree | 84d4b34c1c86747910606109105489e2450dc412 /libglusterfs | |
parent | 41120aa8bab4ca4496bb37b8986434be404ae255 (diff) |
xlator.h: move options and other variables to the top of structure
This helps external applications which wants to consume xlator_api
to read only fields (and not functions) using dlopen() to write
smaller structures/objects and still achieve their requirements.
One such example is GD2 project.
Updates #168
Change-Id: I8737939c8c72f6572ee1514201e9f9f8e4f37b40
Signed-off-by: Amar Tumballi <amarts@redhat.com>
Diffstat (limited to 'libglusterfs')
-rw-r--r-- | libglusterfs/src/xlator.h | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/libglusterfs/src/xlator.h b/libglusterfs/src/xlator.h index 8a5ee819e5c..0e50bef1cb6 100644 --- a/libglusterfs/src/xlator.h +++ b/libglusterfs/src/xlator.h @@ -1053,6 +1053,28 @@ typedef struct { the translators. For the backward compatibility, in 4.x series even the old exported fields will be supported */ typedef struct { + /* op_version: will be used by volume generation logic to figure + out whether to insert it in graph or no, based on cluster's + operating version. + default value: 0, which means good to insert always */ + uint32_t op_version[GF_MAX_RELEASES]; + + /* flags: will be used by volume generation logic to optimize the + placements etc. + default value: 0, which means don't treat it specially */ + uint32_t flags; + + /* xlator_id: unique per xlator. make sure to have no collission + in this ID */ + uint32_t xlator_id; + + /* identifier: a string constant */ + char *identifier; + + /* struct options: if the translator takes any 'options' from the + volume file, then that should be defined here. optional. */ + volume_option_t *options; + /* init(): mandatory method, will be called during the graph initialization */ int32_t (*init) (xlator_t *this); @@ -1090,28 +1112,6 @@ typedef struct { /* dumpops: a structure again, with methods to dump the details. optional. */ struct xlator_dumpops *dumpops; - - /* struct options: if the translator takes any 'options' from the - volume file, then that should be defined here. optional. */ - volume_option_t *options; - - /* op_version: will be used by volume generation logic to figure - out whether to insert it in graph or no, based on cluster's - operating version. - default value: 0, which means good to insert always */ - uint32_t op_version[GF_MAX_RELEASES]; - - /* flags: will be used by volume generation logic to optimize the - placements etc. - default value: 0, which means don't treat it specially */ - uint32_t flags; - - /* xlator_id: unique per xlator. make sure to have no collission - in this ID */ - uint32_t xlator_id; - - /* identifier: a string constant */ - char *identifier; } xlator_api_t; #define xlator_has_parent(xl) (xl->parents != NULL) |