diff options
Diffstat (limited to 'libglusterfs/src')
| -rw-r--r-- | libglusterfs/src/glusterfs.h | 2 | ||||
| -rw-r--r-- | libglusterfs/src/list.h | 18 | ||||
| -rw-r--r-- | libglusterfs/src/mem-types.h | 2 | ||||
| -rw-r--r-- | libglusterfs/src/run.c | 2 | ||||
| -rw-r--r-- | libglusterfs/src/store.c | 33 | 
5 files changed, 43 insertions, 14 deletions
diff --git a/libglusterfs/src/glusterfs.h b/libglusterfs/src/glusterfs.h index 5dd26b45103..6a8e38a2182 100644 --- a/libglusterfs/src/glusterfs.h +++ b/libglusterfs/src/glusterfs.h @@ -70,6 +70,7 @@  #define FNM_EXTMATCH 0  #endif +#define GLUSTERD_MAX_SNAP_NAME  255  #define ZR_MOUNTPOINT_OPT       "mountpoint"  #define ZR_ATTR_TIMEOUT_OPT     "attribute-timeout"  #define ZR_ENTRY_TIMEOUT_OPT    "entry-timeout" @@ -484,6 +485,7 @@ typedef enum {          GF_EVENT_AUTH_FAILED,          GF_EVENT_VOLUME_DEFRAG,          GF_EVENT_PARENT_DOWN, +        GF_EVENT_VOLUME_BARRIER_OP,          GF_EVENT_MAXVAL,  } glusterfs_event_t; diff --git a/libglusterfs/src/list.h b/libglusterfs/src/list.h index 794586e35f6..04b4047129f 100644 --- a/libglusterfs/src/list.h +++ b/libglusterfs/src/list.h @@ -45,19 +45,29 @@ list_add_tail (struct list_head *new, struct list_head *head)  } +/* This function will insert the element to the list in a order. +   Order will be based on the compare function provided as a input. +   If element to be inserted in ascending order compare should return: +    0: if both the arguments are equal +   >0: if first argument is greater than second argument +   <0: if first argument is less than second argument */  static inline void  list_add_order (struct list_head *new, struct list_head *head,                  int (*compare)(struct list_head *, struct list_head *))  { -        struct list_head *pos = head->next; +        struct list_head *pos = head->prev;          while ( pos != head ) { -                if (compare(new, pos) <= 0) +                if (compare(new, pos) >= 0)                          break; -                pos = pos->next; + +                /* Iterate the list in the reverse order. This will have +                   better efficiency if the elements are inserted in the +                   ascending order */ +                pos = pos->prev;          } -        list_add_tail(new, pos); +        list_add (new, pos);  }  static inline void diff --git a/libglusterfs/src/mem-types.h b/libglusterfs/src/mem-types.h index 26237fecb60..c01dfa75e90 100644 --- a/libglusterfs/src/mem-types.h +++ b/libglusterfs/src/mem-types.h @@ -120,7 +120,7 @@ enum gf_common_mem_types_ {          gf_common_mt_iobrefs              = 104,          gf_common_mt_gsync_status_t       = 105,          gf_common_mt_uuid_t               = 106, -        gf_common_mt_vol_lock_obj_t       = 107, +        gf_common_mt_mgmt_v3_lock_obj_t   = 107,          gf_common_mt_txn_opinfo_obj_t     = 108,          gf_common_mt_end                  = 109  }; diff --git a/libglusterfs/src/run.c b/libglusterfs/src/run.c index ebe7f396299..4fd2a3a0d79 100644 --- a/libglusterfs/src/run.c +++ b/libglusterfs/src/run.c @@ -187,7 +187,7 @@ runner_log (runner_t *runner, const char *dom, gf_loglevel_t lvl,          if (len > 0)                  buf[len - 1] = '\0'; -        gf_log (dom, lvl, "%s: %s", msg, buf); +        gf_log_callingfn (dom, lvl, "%s: %s", msg, buf);          GF_FREE (buf);  } diff --git a/libglusterfs/src/store.c b/libglusterfs/src/store.c index 66a5906a327..5beafaf3551 100644 --- a/libglusterfs/src/store.c +++ b/libglusterfs/src/store.c @@ -168,10 +168,12 @@ int  gf_store_read_and_tokenize (FILE *file, char *str, char **iter_key,                              char **iter_val, gf_store_op_errno_t *store_errno)  { -        int32_t     ret = -1; -        char        *savetok = NULL; -        char        *key = NULL; -        char        *value = NULL; +        int32_t     ret         =   -1; +        char        *savetok    = NULL; +        char        *key        = NULL; +        char        *value      = NULL; +        char        *temp       = NULL; +        size_t       str_len    =    0;          GF_ASSERT (file);          GF_ASSERT (str); @@ -179,13 +181,17 @@ gf_store_read_and_tokenize (FILE *file, char *str, char **iter_key,          GF_ASSERT (iter_val);          GF_ASSERT (store_errno); -        ret = fscanf (file, "%s", str); -        if (ret <= 0 || feof (file)) { +        temp = fgets (str, PATH_MAX, file); +        if (temp == NULL || feof (file)) {                  ret = -1;                  *store_errno = GD_STORE_EOF;                  goto out;          } +        str_len = strlen(str); +        str[str_len - 1] = '\0'; +        /* Truncate the "\n", as fgets stores "\n" in str */ +          key = strtok_r (str, "=", &savetok);          if (!key) {                  ret = -1; @@ -253,8 +259,13 @@ gf_store_retrieve_value (gf_store_handle_t *handle, char *key, char **value)                  goto out;          } -        scan_str = GF_CALLOC (1, st.st_size, +        /* "st.st_size + 1" is used as we are fetching each +         * line of a file using fgets, fgets will append "\0" +         * to the end of the string +         */ +        scan_str = GF_CALLOC (1, st.st_size + 1,                                gf_common_mt_char); +          if (scan_str == NULL) {                  ret = -1;                  store_errno = GD_STORE_ENOMEM; @@ -531,7 +542,11 @@ gf_store_iter_get_next (gf_store_iter_t *iter, char  **key, char **value,                  goto out;          } -        scan_str = GF_CALLOC (1, st.st_size, +        /* "st.st_size + 1" is used as we are fetching each +         * line of a file using fgets, fgets will append "\0" +         * to the end of the string +         */ +        scan_str = GF_CALLOC (1, st.st_size + 1,                                gf_common_mt_char);          if (!scan_str) {                  ret = -1; @@ -595,7 +610,9 @@ gf_store_iter_get_matching (gf_store_iter_t *iter, char *key, char **value)                          goto out;                  }                  GF_FREE (tmp_key); +                tmp_key = NULL;                  GF_FREE (tmp_value); +                tmp_value = NULL;                  ret = gf_store_iter_get_next (iter, &tmp_key, &tmp_value,                                                NULL);          }  | 
