diff options
| -rw-r--r-- | libglusterfs/src/glusterfs.h | 303 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-handler.c | 7 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-op-sm.c | 10 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.h | 2 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volume-set.c | 4 | 
5 files changed, 169 insertions, 157 deletions
diff --git a/libglusterfs/src/glusterfs.h b/libglusterfs/src/glusterfs.h index 2d9ab0eba14..4bb166ee2fd 100644 --- a/libglusterfs/src/glusterfs.h +++ b/libglusterfs/src/glusterfs.h @@ -309,18 +309,18 @@ const char *fop_enum_to_string (glusterfs_fop_t fop);  #define GF_CONTENT_KEY "glusterfs.content"  struct _xlator_cmdline_option { -        struct list_head    cmd_args; -        char               *volume; -        char               *key; -        char               *value; +        struct list_head   cmd_args; +        char              *volume; +        char              *key; +        char              *value;  };  typedef struct _xlator_cmdline_option xlator_cmdline_option_t;  struct _server_cmdline { -        struct list_head  list; +        struct list_head   list;          char              *volfile_server;          char              *transport; -        int               port; +        int                port;  };  typedef struct _server_cmdline server_cmdline_t; @@ -330,106 +330,107 @@ typedef struct _server_cmdline server_cmdline_t;  struct _cmd_args {          /* basic options */ -        char             *volfile_server; -        server_cmdline_t *curr_server; -        /* List of backup volfile servers, including original */ -        struct list_head volfile_servers; -        char             *volfile; -        char             *log_server; -        gf_loglevel_t    log_level; -        char            *log_file; -        char            *log_ident; -        gf_log_logger_t  logger; -        gf_log_format_t  log_format; -        uint32_t         log_buf_size; -        uint32_t         log_flush_timeout; -        int32_t          max_connect_attempts; -        char            *print_exports; -        char            *print_netgroups; +        char              *volfile_server; +        server_cmdline_t  *curr_server; +        /* List of backup  volfile servers, including original */ +        struct list_head   volfile_servers; +        char              *volfile; +        char              *log_server; +        gf_loglevel_t      log_level; +        char              *log_file; +        char              *log_ident; +        gf_log_logger_t    logger; +        gf_log_format_t    log_format; +        uint32_t           log_buf_size; +        uint32_t           log_flush_timeout; +        int32_t            max_connect_attempts; +        char              *print_exports; +        char              *print_netgroups;          /* advanced options */ -        uint32_t         volfile_server_port; -        char            *volfile_server_transport; -        uint32_t         log_server_port; -        char            *pid_file; -        char            *sock_file; -        int              no_daemon_mode; -        char            *run_id; -        int              debug_mode; -        int              read_only; -        int              acl; -        int              selinux; -        int              capability; -        int              enable_ino32; -        int              worm; -        int              mac_compat; -        int              fopen_keep_cache; -        int              gid_timeout; -        char             gid_timeout_set; -        int              aux_gfid_mount; +        uint32_t           volfile_server_port; +        char              *volfile_server_transport; +        uint32_t           log_server_port; +        char              *pid_file; +        char              *sock_file; +        int                no_daemon_mode; +        char              *run_id; +        int                debug_mode; +        int                read_only; +        int                acl; +        int                selinux; +        int                capability; +        int                enable_ino32; +        int                worm; +        int                mac_compat; +        int                fopen_keep_cache; +        int                gid_timeout; +        char               gid_timeout_set; +        int                aux_gfid_mount;          /* need a process wide timer-wheel? */ -        int              global_timer_wheel; - -        struct list_head xlator_options;  /* list of xlator_option_t */ - -	/* fuse options */ -	int              fuse_direct_io_mode; -	char             *use_readdirp; -        int              no_root_squash; -        int              volfile_check; -        double           fuse_entry_timeout; -        double           fuse_negative_timeout; -        double           fuse_attribute_timeout; -        char            *volume_name; -        int              fuse_nodev; -        int              fuse_nosuid; -        char            *dump_fuse; -        pid_t            client_pid; -        int              client_pid_set; -        unsigned         uid_map_root; -        int              background_qlen; -        int              congestion_threshold; -        char             *fuse_mountopts; -        int              mem_acct; -        int              resolve_gids; +        int                global_timer_wheel; + +        /* list of xlator_option_t */ +        struct list_head   xlator_options; + +        /* fuse options */ +        int                fuse_direct_io_mode; +        char              *use_readdirp; +        int                no_root_squash; +        int                volfile_check; +        double             fuse_entry_timeout; +        double             fuse_negative_timeout; +        double             fuse_attribute_timeout; +        char              *volume_name; +        int                fuse_nodev; +        int                fuse_nosuid; +        char              *dump_fuse; +        pid_t              client_pid; +        int                client_pid_set; +        unsigned           uid_map_root; +        int                background_qlen; +        int                congestion_threshold; +        char              *fuse_mountopts; +        int                mem_acct; +        int                resolve_gids;          /* key args */ -        char            *mount_point; -        char            *volfile_id; +        char              *mount_point; +        char              *volfile_id;          /* required for portmap */ -        int             brick_port; -        char           *brick_name; -        int             brick_port2; +        int                brick_port; +        char              *brick_name; +        int                brick_port2;          /* Should management connections use SSL? */ -        int             secure_mgmt; +        int                secure_mgmt;          /* Linux-only OOM killer adjustment */  #ifdef GF_LINUX_HOST_OS -        char            *oom_score_adj; +        char              *oom_score_adj;  #endif          /* Run this process with valgrind? Might want to prevent calling           * functions that prevent valgrind from working correctly, like           * dlclose(). */ -        int             valgrind; +        int                valgrind;  };  typedef struct _cmd_args cmd_args_t;  struct _glusterfs_graph { -        struct list_head          list; -        char                      graph_uuid[128]; -        struct timeval            dob; -        void                     *first; -        void                     *top;   /* selected by -n */ -        uint32_t                  leaf_count; -        int                       xl_count; -        int                       id;    /* Used in logging */ -        int                       used;  /* Should be set when fuse gets +        struct list_head   list; +        char               graph_uuid[128]; +        struct timeval     dob; +        void              *first; +        void              *top;   /* selected by -n */ +        uint32_t           leaf_count; +        int                xl_count; +        int                id;    /* Used in logging */ +        int                used;  /* Should be set when fuse gets                                              first CHILD_UP */ -        uint32_t                  volfile_checksum; +        uint32_t           volfile_checksum;  };  typedef struct _glusterfs_graph glusterfs_graph_t; @@ -452,51 +453,63 @@ struct gf_ctx_tw {  };  struct _glusterfs_ctx { -        cmd_args_t          cmd_args; -        char               *process_uuid; -        FILE               *pidfp; -        char                fin; -        void               *timer; -        void               *ib; -        struct call_pool   *pool; -        void               *event_pool; -        void               *iobuf_pool; -        void               *logbuf_pool; -        gf_lock_t           lock; -        size_t              page_size; -        struct list_head    graphs; /* double linked list of graphs - one per volfile parse */ -        glusterfs_graph_t  *active; /* the latest graph in use */ -        void               *master; /* fuse, or libglusterfsclient (however, not protocol/server) */ -        void               *mgmt;   /* xlator implementing MOPs for centralized logging, volfile server */ -        void               *listener; /* listener of the commands from glusterd */ -        unsigned char       measure_latency; /* toggle switch for latency measurement */ -        pthread_t           sigwaiter; -	char               *cmdlinestr; -        struct mem_pool    *stub_mem_pool; -        unsigned char       cleanup_started; -        int                 graph_id; /* Incremented per graph, value should -                                         indicate how many times the graph has -                                         got changed */ -        pid_t               mnt_pid; /* pid of the mount agent */ -        int                 process_mode; /*mode in which process is runninng*/ -        struct syncenv     *env;          /* The env pointer to the synctasks */ - -        struct list_head    mempool_list; /* used to keep a global list of -                                             mempools, used to log details of -                                             mempool in statedump */ -        char               *statedump_path; - -        struct mem_pool    *dict_pool; -        struct mem_pool    *dict_pair_pool; -        struct mem_pool    *dict_data_pool; +        cmd_args_t         cmd_args; +        char              *process_uuid; +        FILE              *pidfp; +        char               fin; +        void              *timer; +        void              *ib; +        struct call_pool  *pool; +        void              *event_pool; +        void              *iobuf_pool; +        void              *logbuf_pool; +        gf_lock_t          lock; +        size_t             page_size; + +        /* one per volfile parse */ +        struct list_head   graphs; + +        /* the latest graph in use */ +        glusterfs_graph_t *active; + +        /* fuse or nfs (but not protocol/server) */ +        void              *master; + +        /* xlator implementing MOPs for centralized logging, volfile server */ +        void              *mgmt; + +        /* listener of the commands from glusterd */ +        void              *listener; + +        /* toggle switch for latency measurement */ +        unsigned char      measure_latency; +        pthread_t          sigwaiter; +        char              *cmdlinestr; +        struct mem_pool   *stub_mem_pool; +        unsigned char      cleanup_started; +        int                graph_id; /* Incremented per graph, value should +                                        indicate how many times the graph has +                                        got changed */ +        pid_t              mnt_pid; /* pid of the mount agent */ +        int                process_mode; /*mode in which process is runninng*/ +        struct syncenv    *env;          /* The env pointer to the synctasks */ + +        struct list_head   mempool_list; /* used to keep a global list of +                                            mempools, used to log details of +                                            mempool in statedump */ +        char              *statedump_path; + +        struct mem_pool   *dict_pool; +        struct mem_pool   *dict_pair_pool; +        struct mem_pool   *dict_data_pool;          glusterfsd_mgmt_event_notify_fn_t notify; /* Used for xlators to make                                                       call to fsd-mgmt */ -        gf_log_handle_t     log; /* all logging related variables */ +        gf_log_handle_t    log; /* all logging related variables */ -        int                 mem_acct_enable; +        int                mem_acct_enable; -        int                 daemon_pipe[2]; +        int                daemon_pipe[2];          struct clienttable *clienttable; @@ -509,7 +522,7 @@ struct _glusterfs_ctx {           * any sense, but it's not worth turning the codebase upside-down to           * fix it.  Thus, an int.           */ -        int                 secure_mgmt; +        int                secure_mgmt;          /*           * Should *our* server/inbound connections use SSL?  This is only true @@ -517,17 +530,17 @@ struct _glusterfs_ctx {           * and SSL is set on the I/O path.  It should never be set e.g. for           * NFS.           */ -        mgmt_ssl_t          secure_srvr; +        mgmt_ssl_t         secure_srvr;          /* Buffer to 'save' backtrace even under OOM-kill like situations*/ -        char                btbuf[GF_BACKTRACE_LEN]; +        char               btbuf[GF_BACKTRACE_LEN]; -        pthread_mutex_t     notify_lock; -        pthread_cond_t      notify_cond; -        int                 notifying; +        pthread_mutex_t    notify_lock; +        pthread_cond_t     notify_cond; +        int                notifying; -        struct gf_ctx_tw   *tw; /* refcounted timer_wheel */ +        struct gf_ctx_tw  *tw; /* refcounted timer_wheel */ -        gf_lock_t           volfile_lock; +        gf_lock_t          volfile_lock;          struct { @@ -536,14 +549,14 @@ struct _glusterfs_ctx {                  gf_atomic_t total_dicts_used;          } stats; -        struct list_head volfile_list; +        struct list_head   volfile_list;  };  typedef struct _glusterfs_ctx glusterfs_ctx_t;  typedef struct { -        char volfile_checksum[SHA256_DIGEST_LENGTH]; -        char vol_id[NAME_MAX+1]; -        struct list_head volfile_list; +        char               volfile_checksum[SHA256_DIGEST_LENGTH]; +        char               vol_id[NAME_MAX+1]; +        struct list_head   volfile_list;  } gf_volfile_t; @@ -551,19 +564,19 @@ typedef struct {  glusterfs_ctx_t *glusterfs_ctx_new (void);  struct gf_flock { -        short        l_type; -        short        l_whence; -        off_t        l_start; -        off_t        l_len; -        pid_t        l_pid; -        gf_lkowner_t l_owner; +        short              l_type; +        short              l_whence; +        off_t              l_start; +        off_t              l_len; +        pid_t              l_pid; +        gf_lkowner_t       l_owner;  };  typedef struct lock_migration_info { -        struct list_head        list; -        struct gf_flock         flock; -        char                   *client_uid; -        uint32_t                lk_flags; +        struct list_head   list; +        struct gf_flock    flock; +        char              *client_uid; +        uint32_t           lk_flags;  } lock_migration_info_t;  #define GF_MUST_CHECK __attribute__((warn_unused_result)) diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c index b86580f9f0b..3a6445d8ace 100644 --- a/xlators/mgmt/glusterd/src/glusterd-handler.c +++ b/xlators/mgmt/glusterd/src/glusterd-handler.c @@ -4721,11 +4721,12 @@ glusterd_get_volume_opts (rpcsvc_request_t *req, dict_t *dict)                                  }                          } -                        if (strcmp (key, "cluster.max-op-version") == 0) { +                        if (strcmp (key, GLUSTERD_MAX_OP_VERSION_KEY) == 0) {                                  ret = glusterd_get_global_max_op_version (req, dict, 1);                                  if (ret)                                          goto out; -                        } else if (strcmp (key, "cluster.op-version") == 0) { +                        } else if (strcmp (key, +                                           GLUSTERD_GLOBAL_OP_VERSION_KEY) == 0) {                                  sprintf (dict_key, "key%d", count);                                  ret = dict_set_str(dict, dict_key, key);                                  if (ret) { @@ -4958,7 +4959,7 @@ glusterd_print_global_options (dict_t *opts, char *key, data_t *val, void *data)          GF_VALIDATE_OR_GOTO (THIS->name, val, out);          GF_VALIDATE_OR_GOTO (THIS->name, data, out); -        if (strcmp (key, "global-option-version") == 0) +        if (strcmp (key, GLUSTERD_GLOBAL_OPT_VERSION) == 0)                  goto out;          fp = (FILE *) data; diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.c b/xlators/mgmt/glusterd/src/glusterd-op-sm.c index 6b12d603728..0ac64858c11 100644 --- a/xlators/mgmt/glusterd/src/glusterd-op-sm.c +++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.c @@ -774,7 +774,6 @@ glusterd_validate_shared_storage (char *key, char *value, char *errstr)          char               hook_script[PATH_MAX]    = "";          xlator_t          *this                     = NULL;          glusterd_conf_t   *conf                     = NULL; -        struct stat        stbuf                    = {0,};          this = THIS;          GF_VALIDATE_OR_GOTO ("glusterd", this, out); @@ -806,7 +805,7 @@ glusterd_validate_shared_storage (char *key, char *value, char *errstr)          snprintf (hook_script, sizeof(hook_script),                    "%s"GLUSTERD_SHRD_STRG_HOOK_SCRIPT, conf->workdir); -        ret = sys_lstat (hook_script, &stbuf); +        ret = sys_access (hook_script, R_OK|X_OK);          if (ret) {                  snprintf (errstr, PATH_MAX,                            "The hook-script (%s) required " @@ -900,7 +899,6 @@ glusterd_op_stage_set_volume (dict_t *dict, char **op_errstr)          gf_boolean_t          check_op_version            = _gf_true;          gf_boolean_t          trash_enabled               = _gf_false;          gf_boolean_t          all_vol                     = _gf_false; -        struct stat           stbuf                       = {0, };          GF_ASSERT (dict);          this = THIS; @@ -1128,7 +1126,7 @@ glusterd_op_stage_set_volume (dict_t *dict, char **op_errstr)                  /* Check if the key is cluster.op-version and set                   * local_new_op_version to the value given if possible.                   */ -                if (strcmp (key, "cluster.op-version") == 0) { +                if (strcmp (key, GLUSTERD_GLOBAL_OP_VERSION_KEY) == 0) {                          if (!all_vol) {                                  ret = -1;                                  snprintf (errstr, sizeof (errstr), "Option \"" @@ -1292,7 +1290,7 @@ glusterd_op_stage_set_volume (dict_t *dict, char **op_errstr)                                          /* Checks whether a directory with                                             given option exists or not */ -                                        if (!sys_stat (trash_path, &stbuf)) { +                                        if (!sys_access (trash_path, R_OK)) {                                                  snprintf (errstr,                                                            sizeof (errstr),                                                            "Path %s exists", @@ -2508,7 +2506,7 @@ glusterd_op_set_all_volume_options (xlator_t *this, dict_t *dict,          /* If the key is cluster.op-version, set conf->op_version to the value           * if needed and save it.           */ -        if (strcmp(key, "cluster.op-version") == 0) { +        if (strcmp(key, GLUSTERD_GLOBAL_OP_VERSION_KEY) == 0) {                  ret = 0;                  ret = gf_string2uint (value, &op_version); diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.h b/xlators/mgmt/glusterd/src/glusterd-utils.h index cf50e82e849..fce56b12e9c 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.h +++ b/xlators/mgmt/glusterd/src/glusterd-utils.h @@ -39,7 +39,7 @@                  int32_t         i      = 0;                                    \                                                                                 \                  if (!get_opt && (!strcmp (key, "all") ||                       \ -                                 !strcmp (key, "cluster.max-op-version"))) {   \ +                                 !strcmp (key, GLUSTERD_MAX_OP_VERSION_KEY))) {\                          ret = -1;                                              \                          *op_errstr = gf_strdup ("Not a valid option to set");  \                          goto out;                                              \ diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-set.c b/xlators/mgmt/glusterd/src/glusterd-volume-set.c index 60a1d9be5fa..906fec07018 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volume-set.c +++ b/xlators/mgmt/glusterd/src/glusterd-volume-set.c @@ -2859,12 +2859,12 @@ struct volopt_map_entry glusterd_volopt_map[] = {            .value       = BARRIER_TIMEOUT,            .op_version  = GD_OP_VERSION_3_6_0,          }, -        { .key         = "cluster.op-version", +        { .key         = GLUSTERD_GLOBAL_OP_VERSION_KEY,            .voltype     = "mgmt/glusterd",            .op_version  = GD_OP_VERSION_3_6_0,          },          { -          .key         = "cluster.max-op-version", +          .key         = GLUSTERD_MAX_OP_VERSION_KEY,            .voltype     = "mgmt/glusterd",            .op_version  = GD_OP_VERSION_3_10_0,          },  | 
