summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd-utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-utils.c')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-utils.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
index ef53128e8c4..7ac6cf37134 100644
--- a/xlators/mgmt/glusterd/src/glusterd-utils.c
+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
@@ -6189,10 +6189,36 @@ out:
return ret;
}
+static gf_boolean_t
+glusterd_nfs_need_start ()
+{
+ gf_boolean_t start = _gf_false;
+ glusterd_conf_t *priv = NULL;
+ glusterd_volinfo_t *volinfo = NULL;
+
+ priv = THIS->private;
+
+ list_for_each_entry (volinfo, &priv->volumes, vol_list) {
+ if (!glusterd_is_volume_started (volinfo))
+ continue;
+
+ if (dict_get_str_boolean (volinfo->dict, "nfs.disable", 0))
+ continue;
+
+ start = _gf_true;
+ break;
+ }
+
+ return start;
+}
+
int
glusterd_nfs_server_start ()
{
- return glusterd_nodesvc_start ("nfs", _gf_false);
+ if (glusterd_nfs_need_start ())
+ return glusterd_nodesvc_start ("nfs", _gf_false);
+
+ return 0;
}
int