diff options
Diffstat (limited to 'xlators/features/cloudsync/src/cloudsync-common.c')
| -rw-r--r-- | xlators/features/cloudsync/src/cloudsync-common.c | 58 |
1 files changed, 37 insertions, 21 deletions
diff --git a/xlators/features/cloudsync/src/cloudsync-common.c b/xlators/features/cloudsync/src/cloudsync-common.c index d0d00decca3..445a31b90e7 100644 --- a/xlators/features/cloudsync/src/cloudsync-common.c +++ b/xlators/features/cloudsync/src/cloudsync-common.c @@ -11,34 +11,50 @@ #include "cloudsync-common.h" void -cs_local_wipe (xlator_t *this, cs_local_t *local) +cs_xattrinfo_wipe(cs_local_t *local) { - if (!local) - return; + if (local->xattrinfo.lxattr) { + if (local->xattrinfo.lxattr->file_path) + GF_FREE(local->xattrinfo.lxattr->file_path); - loc_wipe (&local->loc); + if (local->xattrinfo.lxattr->volname) + GF_FREE(local->xattrinfo.lxattr->volname); - if (local->fd) { - fd_unref (local->fd); - local->fd = NULL; - } + GF_FREE(local->xattrinfo.lxattr); + } +} + +void +cs_local_wipe(xlator_t *this, cs_local_t *local) +{ + if (!local) + return; + + loc_wipe(&local->loc); + + if (local->fd) { + fd_unref(local->fd); + local->fd = NULL; + } + + if (local->stub) { + call_stub_destroy(local->stub); + local->stub = NULL; + } - if (local->stub) { - call_stub_destroy (local->stub); - local->stub = NULL; - } + if (local->xattr_req) + dict_unref(local->xattr_req); - if (local->xattr_req) - dict_unref (local->xattr_req); + if (local->xattr_rsp) + dict_unref(local->xattr_rsp); - if (local->xattr_rsp) - dict_unref (local->xattr_rsp); + if (local->dlfd) + fd_unref(local->dlfd); - if (local->dlfd) - fd_unref (local->dlfd); + if (local->remotepath) + GF_FREE(local->remotepath); - if (local->remotepath) - GF_FREE (local->remotepath); + cs_xattrinfo_wipe(local); - mem_put (local); + mem_put(local); } |
