diff options
-rw-r--r-- | tests/bugs/bug-1040934.t | 37 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.c | 3 |
2 files changed, 39 insertions, 1 deletions
diff --git a/tests/bugs/bug-1040934.t b/tests/bugs/bug-1040934.t new file mode 100644 index 000000000..38ccc1120 --- /dev/null +++ b/tests/bugs/bug-1040934.t @@ -0,0 +1,37 @@ +#!/bin/bash + +. $(dirname $0)/../include.rc +. $(dirname $0)/../cluster.rc +. $(dirname $0)/../snapshot.rc +. $(dirname $0)/../volume.rc + +cleanup; + +TEST launch_cluster 2 +TEST setup_lvm 2 + +TEST $CLI_1 peer probe $H2 +EXPECT_WITHIN 20 1 peer_count + +TEST $CLI_1 volume create $V0 replica 2 $H1:$L1 $H2:$L2 +EXPECT 'Created' volinfo_field $V0 'Status' + +TEST $CLI_1 volume start $V0 +EXPECT 'Started' volinfo_field $V0 'Status' + +TEST $CLI_1 snapshot create $V0 -n ${V0}_snap +PID_1=$! +wait $PID_1 + +TEST snapshot_exists ${V0}_snap +TEST mount -t glusterfs $H1:$V0/snaps/${V0}_snap $M0 +cd $M0 +TEST ! touch a + +TEST $CLI_1 snapshot delete $V0 -s ${V0}_snap +PID_1=$! +wait $PID_1 + +TEST ! snapshot_exists ${V0}_snap + +cleanup; diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index 3b8e7648c..2565544a6 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -1614,7 +1614,8 @@ server_graph_builder (volgen_graph_t *graph, glusterd_volinfo_t *volinfo, } /* Check for read-only volume option, and add it to the graph */ - if (dict_get_str_boolean (set_dict, "features.read-only", 0)) { + if (dict_get_str_boolean (set_dict, "features.read-only", 0) + || volinfo -> is_snap_volume) { xl = volgen_graph_add (graph, "features/read-only", volname); if (!xl) { ret = -1; |