diff options
| author | Amar Tumballi <amarts@redhat.com> | 2012-11-13 01:14:43 +0530 | 
|---|---|---|
| committer | Anand Avati <avati@redhat.com> | 2012-12-19 23:35:29 -0800 | 
| commit | 000e65d7af7be31236e060064fb3b4a332e78cf3 (patch) | |
| tree | ff9e3ca119d8c43b9a12402fe1de84d8142f105a /xlators/mount | |
| parent | e5a19e2ab587175c91fde0f0c33319dcbff73018 (diff) | |
core: remove all the 'inner' functions in codebase
* move 'dict_keys_join()' from api/glfs_fops.c to libglusterfs/dict.c
  - also added an argument which is treated as a filter function if
    required, currently useful for fuse.
* now 'make CFLAGS="-std=gnu99 -pedantic" 2>&1 | grep nested' gives
  no output.
Change-Id: I4e18496fbd93ae1d3942026ef4931889cba015e8
Signed-off-by: Amar Tumballi <amarts@redhat.com>
BUG: 875913
Reviewed-on: http://review.gluster.org/4187
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'xlators/mount')
| -rw-r--r-- | xlators/mount/fuse/src/fuse-bridge.c | 35 | 
1 files changed, 12 insertions, 23 deletions
diff --git a/xlators/mount/fuse/src/fuse-bridge.c b/xlators/mount/fuse/src/fuse-bridge.c index a6d02210368..214923decaa 100644 --- a/xlators/mount/fuse/src/fuse-bridge.c +++ b/xlators/mount/fuse/src/fuse-bridge.c @@ -2868,10 +2868,10 @@ send_fuse_xattr (xlator_t *this, fuse_in_header_t *finh, const char *value,   * when it tries to setxattr() for selinux xattrs   */  static int -fuse_filter_xattr(xlator_t *this, char *key) +fuse_filter_xattr(char *key)  {          int need_filter = 0; -        struct fuse_private *priv = this->private; +        struct fuse_private *priv = THIS->private;          if ((priv->client_pid == GF_CLIENT_PID_GSYNCD)              && fnmatch ("*.selinux*", key, FNM_PERIOD) == 0) @@ -2892,6 +2892,7 @@ fuse_xattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          data_t         *value_data = NULL;          int             ret = -1;          int32_t         len = 0; +        int32_t         len_next = 0;          state = frame->root->state;          finh  = state->finh; @@ -2922,32 +2923,20 @@ fuse_xattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                          /* we need to invoke fuse_filter_xattr() twice. Once                           * while counting size and then while filling buffer                           */ -                        int _get_total_len (dict_t *d, char *k, data_t *v, -                                            void *tmp) -                        { -                                if (!fuse_filter_xattr (this, k)) -                                        len += strlen (k) + 1; -                                return 0; -                        } -                        dict_foreach (dict, _get_total_len, NULL); +                        len = dict_keys_join (NULL, 0, dict, fuse_filter_xattr); +                        if (len < 0) +                                goto out;                          value = alloca (len + 1);                          if (!value)                                  goto out; -                        len = 0; - -                        int _set_listxattr_keys (dict_t *d, char *k, data_t *v, -                                                 void *tmp) -                        { -                                if (!fuse_filter_xattr (this, k)) { -                                        strcpy (value + len, k); -                                        value[len + strlen (k)] = '\0'; -                                        len += strlen (k) + 1; -                                } -                                return 0; -                        } -                        dict_foreach (dict, _set_listxattr_keys, NULL); +                        len_next = dict_keys_join (value, len, dict, +                                                   fuse_filter_xattr); +                        if (len_next != len) +                                gf_log (THIS->name, GF_LOG_ERROR, +                                        "sizes not equal %d != %d", +                                        len, len_next);                          send_fuse_xattr (this, finh, value, len, state->size);                  } /* if(state->name)...else */  | 
