From f605883c4fe99428c560a18a1051693f7aadf84e Mon Sep 17 00:00:00 2001 From: Csaba Henk Date: Thu, 8 Jul 2010 05:44:05 +0000 Subject: fix up option handling After 79241696, the following anomalies came up: - --mac-compat and --read-only was rejected originally on server side, 79241696 cancelled this check - direct I/O option handling was interfered by 79241696 - --mac-compat had no effect on Linux and does not compile on Mac Restore original behaviors. Signed-off-by: Csaba Henk Signed-off-by: Anand V. Avati BUG: 971 (dynamic volume management) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=971 --- libglusterfs/src/glusterfs.h | 6 +++++- libglusterfs/src/graph.c | 14 ++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) (limited to 'libglusterfs') diff --git a/libglusterfs/src/glusterfs.h b/libglusterfs/src/glusterfs.h index 48bb0ff4d..5b9f375e6 100644 --- a/libglusterfs/src/glusterfs.h +++ b/libglusterfs/src/glusterfs.h @@ -201,6 +201,10 @@ struct _xlator_cmdline_option { typedef struct _xlator_cmdline_option xlator_cmdline_option_t; +#define GF_OPTION_ENABLE _gf_true +#define GF_OPTION_DISABLE _gf_false +#define GF_OPTION_DEFERRED 2 + struct _cmd_args { /* basic options */ char *volfile_server; @@ -222,7 +226,7 @@ struct _cmd_args { struct list_head xlator_options; /* list of xlator_option_t */ /* fuse options */ - int fuse_direct_io_mode_flag; + int fuse_direct_io_mode; int volfile_check; double fuse_entry_timeout; double fuse_attribute_timeout; diff --git a/libglusterfs/src/graph.c b/libglusterfs/src/graph.c index a59b427bf..2609b7625 100644 --- a/libglusterfs/src/graph.c +++ b/libglusterfs/src/graph.c @@ -131,6 +131,14 @@ glusterfs_graph_insert (glusterfs_graph_t *graph, glusterfs_ctx_t *ctx, xlator_list_t *xlchild = NULL; xlator_list_t *xlparent = NULL; + if (!ctx->master) { + gf_log ("glusterfs", GF_LOG_ERROR, + "volume \"%s\" can be added from command line only " + "on client side", type); + + return -1; + } + ixl = GF_CALLOC (1, sizeof (*ixl), gf_common_mt_xlator_t); if (!ixl) return -1; @@ -210,13 +218,11 @@ glusterfs_graph_mac_compat (glusterfs_graph_t *graph, glusterfs_ctx_t *ctx) cmd_args = &ctx->cmd_args; -#ifdef GF_DARWIN_HOST_OS - if (!cmd_args->mac_compat) + if (cmd_args->mac_compat == GF_OPTION_DISABLE) return 0; - ret = glusterfs_graph_insert (graph, ctx, ZR_XLATOR_MAC_COMPAT, + ret = glusterfs_graph_insert (graph, ctx, "features/mac-compat", "mac-compat-autoload"); -#endif return ret; } -- cgit