diff options
| -rw-r--r-- | tests/bugs/fuse/bug-1317785.t | 22 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volume-set.c | 8 | ||||
| -rw-r--r-- | xlators/performance/md-cache/src/md-cache.c | 22 | 
3 files changed, 52 insertions, 0 deletions
diff --git a/tests/bugs/fuse/bug-1317785.t b/tests/bugs/fuse/bug-1317785.t new file mode 100644 index 00000000000..87c65405537 --- /dev/null +++ b/tests/bugs/fuse/bug-1317785.t @@ -0,0 +1,22 @@ +#!/bin/bash + +. $(dirname $0)/../../include.rc +. $(dirname $0)/../../volume.rc + +cleanup; + +TEST glusterd + +TEST $CLI volume create $V0 $H0:$B0/$V0 +TEST $CLI volume start $V0 + +TEST $CLI volume set $V0 cache-swift-metadata on +EXPECT 'on' volinfo_field $V0 'performance.cache-swift-metadata' + +TEST $CLI volume set $V0 cache-swift-metadata off +EXPECT 'off' volinfo_field $V0 'performance.cache-swift-metadata' + +TEST $CLI volume stop $V0 +TEST $CLI volume delete $V0 + +cleanup; diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-set.c b/xlators/mgmt/glusterd/src/glusterd-volume-set.c index 523fa3978e7..5d9aafeb661 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volume-set.c +++ b/xlators/mgmt/glusterd/src/glusterd-volume-set.c @@ -1410,6 +1410,14 @@ struct volopt_map_entry glusterd_volopt_map[] = {            .op_version = 2,            .flags      = OPT_FLAG_CLIENT_OPT          }, +        { .key        = "performance.cache-swift-metadata", +          .voltype    = "performance/md-cache", +          .option     = "cache-swift-metadata", +          .op_version = GD_OP_VERSION_3_7_10, +          .description = "Cache swift metadata (user.swift.metadata xattr)", +          .flags      = OPT_FLAG_CLIENT_OPT +        }, +   	/* Crypt xlator options */ diff --git a/xlators/performance/md-cache/src/md-cache.c b/xlators/performance/md-cache/src/md-cache.c index 59af907a1e7..b761eae4975 100644 --- a/xlators/performance/md-cache/src/md-cache.c +++ b/xlators/performance/md-cache/src/md-cache.c @@ -31,6 +31,7 @@ struct mdc_conf {  	gf_boolean_t cache_posix_acl;  	gf_boolean_t cache_selinux;  	gf_boolean_t force_readdirp; +        gf_boolean_t cache_swift_metadata;  }; @@ -64,6 +65,11 @@ static struct mdc_key {  		.load = 0,  		.check = 1,  	}, +        { +                .name = "user.swift.metadata", +                .load = 0, +                .check = 1, +        },  	{  		.name = "security.capability",  		.load = 0, @@ -2224,6 +2230,12 @@ reconfigure (xlator_t *this, dict_t *options)  	mdc_key_load_set (mdc_keys, "system.posix_acl_", conf->cache_posix_acl);  	mdc_key_load_set (mdc_keys, "glusterfs.posix_acl.", conf->cache_posix_acl); +        GF_OPTION_RECONF ("cache-swift-metadata", conf->cache_swift_metadata, +                          options, bool, out); +        mdc_key_load_set (mdc_keys, "user.swift.metadata", +                          conf->cache_swift_metadata); + +  	GF_OPTION_RECONF("force-readdirp", conf->force_readdirp, options, bool, out);  out: @@ -2260,6 +2272,11 @@ init (xlator_t *this)  	mdc_key_load_set (mdc_keys, "system.posix_acl_", conf->cache_posix_acl);  	mdc_key_load_set (mdc_keys, "glusterfs.posix_acl.", conf->cache_posix_acl); +        GF_OPTION_INIT ("cache-swift-metadata", +                        conf->cache_swift_metadata, bool, out); +        mdc_key_load_set (mdc_keys, "user.swift.metadata", +                          conf->cache_swift_metadata); +  	GF_OPTION_INIT("force-readdirp", conf->force_readdirp, bool, out);  out:  	this->private = conf; @@ -2317,6 +2334,11 @@ struct volume_options options[] = {  	  .type = GF_OPTION_TYPE_BOOL,  	  .default_value = "false",  	}, +        { .key = {"cache-swift-metadata"}, +          .type = GF_OPTION_TYPE_BOOL, +          .default_value = "true", +          .description = "Cache swift metadata (user.swift.metadata xattr)", +        },  	{ .key = {"cache-posix-acl"},  	  .type = GF_OPTION_TYPE_BOOL,  	  .default_value = "false",  | 
