summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xextras/ganesha/scripts/create-export-ganesha.sh3
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-ganesha.c13
2 files changed, 15 insertions, 1 deletions
diff --git a/extras/ganesha/scripts/create-export-ganesha.sh b/extras/ganesha/scripts/create-export-ganesha.sh
index de869c4629d..48c0ea5c16c 100755
--- a/extras/ganesha/scripts/create-export-ganesha.sh
+++ b/extras/ganesha/scripts/create-export-ganesha.sh
@@ -53,4 +53,7 @@ echo " }"
}
write_conf $@ > $GANESHA_DIR/exports/export.$VOL.conf
+if ! (cat $CONF | grep $VOL.conf$ )
+then
echo "%include \"$GANESHA_DIR/exports/export.$VOL.conf\"" >> $CONF
+fi
diff --git a/xlators/mgmt/glusterd/src/glusterd-ganesha.c b/xlators/mgmt/glusterd/src/glusterd-ganesha.c
index b4375aa26c2..a200a64d7c6 100644
--- a/xlators/mgmt/glusterd/src/glusterd-ganesha.c
+++ b/xlators/mgmt/glusterd/src/glusterd-ganesha.c
@@ -419,6 +419,7 @@ ganesha_manage_export (dict_t *dict, char *value, char **op_errstr)
int ret = -1;
char str[1024];
glusterd_volinfo_t *volinfo = NULL;
+ dict_t *vol_opts = NULL;
char *volname = NULL;
xlator_t *this = NULL;
glusterd_conf_t *priv = NULL;
@@ -500,11 +501,21 @@ ganesha_manage_export (dict_t *dict, char *value, char **op_errstr)
runner_add_args (&runner, "sh", GANESHA_PREFIX"/dbus-send.sh",
CONFDIR, value, volname, NULL);
ret = runner_run (&runner);
- if (ret)
+ if (ret) {
gf_asprintf(op_errstr, "Dynamic export"
" addition/deletion failed."
" Please see log file for details");
+ goto out;
+ }
}
+ /* cache-invalidation should be on when a volume is exported
+ * and off when a volume is unexported. */
+ vol_opts = volinfo->dict;
+ ret = dict_set_dynstr_with_alloc (vol_opts,
+ "features.cache-invalidation", value);
+ if (ret)
+ gf_asprintf (op_errstr, "Cache-invalidation could not"
+ " be set to %s.", value);
out:
return ret;
}