summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-quota.c3
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-utils.c20
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-utils.h6
3 files changed, 28 insertions, 1 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-quota.c b/xlators/mgmt/glusterd/src/glusterd-quota.c
index 3ed0196c15a..3e29a9601bc 100644
--- a/xlators/mgmt/glusterd/src/glusterd-quota.c
+++ b/xlators/mgmt/glusterd/src/glusterd-quota.c
@@ -989,7 +989,8 @@ glusterd_quotad_op (int opcode)
if (glusterd_all_volumes_with_quota_stopped ())
ret = glusterd_quotad_stop ();
else
- ret = glusterd_check_generate_start_quotad ();
+ ret = glusterd_check_generate_start_quotad_wait
+ ();
break;
default:
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
index 66eb9408a6b..9c6414905c3 100644
--- a/xlators/mgmt/glusterd/src/glusterd-utils.c
+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
@@ -6037,6 +6037,12 @@ glusterd_shd_start ()
int
glusterd_quotad_start ()
{
+ return glusterd_nodesvc_start ("quotad", _gf_false);
+}
+
+int
+glusterd_quotad_start_wait ()
+{
return glusterd_nodesvc_start ("quotad", _gf_true);
}
@@ -6416,6 +6422,20 @@ glusterd_check_generate_start_quotad ()
return ret;
}
+/* Blocking start variant of glusterd_check_generate_start_quotad */
+int
+glusterd_check_generate_start_quotad_wait ()
+{
+ int ret = 0;
+
+ ret = glusterd_check_generate_start_service
+ (glusterd_create_quotad_volfile, glusterd_quotad_stop,
+ glusterd_quotad_start_wait);
+ if (ret == -EINVAL)
+ ret = 0;
+ return ret;
+}
+
int
glusterd_nodesvcs_batch_op (glusterd_volinfo_t *volinfo, int (*nfs_op) (),
int (*shd_op) (), int (*qd_op) ())
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.h b/xlators/mgmt/glusterd/src/glusterd-utils.h
index aae91cdff8d..320bc20cdd2 100644
--- a/xlators/mgmt/glusterd/src/glusterd-utils.h
+++ b/xlators/mgmt/glusterd/src/glusterd-utils.h
@@ -223,6 +223,9 @@ int32_t
glusterd_quotad_start ();
int32_t
+glusterd_quotad_start_wait ();
+
+int32_t
glusterd_quotad_stop ();
void
@@ -268,6 +271,9 @@ int
glusterd_check_generate_start_quotad (void);
int
+glusterd_check_generate_start_quotad_wait (void);
+
+int
glusterd_nodesvcs_handle_graph_change (glusterd_volinfo_t *volinfo);
int