diff options
-rw-r--r-- | tests/bugs/bug-948686.t | 10 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd.c | 3 |
2 files changed, 13 insertions, 0 deletions
diff --git a/tests/bugs/bug-948686.t b/tests/bugs/bug-948686.t index 63c099a79bc..db9c198a96f 100644 --- a/tests/bugs/bug-948686.t +++ b/tests/bugs/bug-948686.t @@ -34,3 +34,13 @@ TEST $CLI_2 volume stop $V0; TEST $CLI_2 volume delete $V0; cleanup; + +TEST glusterd; +TEST $CLI volume create $V0 $H0:$B0/$V0 +TEST $CLI volume start $V0 +pkill glusterd; +pkill glusterfsd; +TEST glusterd +TEST $CLI volume status $V0 + +cleanup; diff --git a/xlators/mgmt/glusterd/src/glusterd.c b/xlators/mgmt/glusterd/src/glusterd.c index cb5daf4bb3d..41a1cb368f8 100644 --- a/xlators/mgmt/glusterd/src/glusterd.c +++ b/xlators/mgmt/glusterd/src/glusterd.c @@ -873,6 +873,8 @@ _install_mount_spec (dict_t *opts, char *key, data_t *value, void *data) static int gd_default_synctask_cbk (int ret, call_frame_t *frame, void *opaque) { + glusterd_conf_t *priv = THIS->private; + synclock_unlock (&priv->big_lock); return ret; } @@ -886,6 +888,7 @@ glusterd_launch_synctask (synctask_fn_t fn, void *opaque) this = THIS; priv = this->private; + synclock_lock (&priv->big_lock); ret = synctask_new (this->ctx->env, fn, gd_default_synctask_cbk, NULL, opaque); if (ret) |