glusterd: fix loading ctime in client graph logic

Commit efbf8ab wasn't handling all the scenarios of toggling ctime
option correctly and more over a ! had completely tossed up the logic.

Fixes: bz#1698471
Change-Id: If12e2f69045e59878992ee2cd0518cc0eabcce0d
Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
This commit is contained in:
Atin Mukherjee 2019-04-16 17:20:34 +05:30 committed by Shyamsundar Ranganathan
parent ec95f02b1e
commit 1bbf2f7713

View File

@ -4282,9 +4282,15 @@ client_graph_builder(volgen_graph_t *graph, glusterd_volinfo_t *volinfo,
goto out;
}
}
if (conf->op_version >= GD_OP_VERSION_5_0 &&
!dict_get_str_boolean(set_dict, "features.ctime", _gf_false)) {
/* a. ret will be -1 if features.ctime is not set in the volinfo->dict which
* means ctime should be loaded into the graph.
* b. ret will be 1 if features.ctime is explicitly turned on through
* volume set and in that case ctime should be loaded into the graph.
* c. ret will be 0 if features.ctime is explicitly turned off and in that
* case ctime shouldn't be loaded into the graph.
*/
ret = dict_get_str_boolean(set_dict, "features.ctime", -1);
if (conf->op_version >= GD_OP_VERSION_5_0 && ret) {
xl = volgen_graph_add(graph, "features/utime", volname);
if (!xl) {
ret = -1;