From 3b60eea533f591517e874ccc36f2489baad42998 Mon Sep 17 00:00:00 2001 From: Junaid Date: Thu, 21 Jul 2011 23:51:45 +0530 Subject: features/marker-quota: Fix some random memory leaks. Change-Id: I1b01adf1d0ecf494f960d125f2bdcc9c10137115 BUG: 3169 Reviewed-on: http://review.gluster.com/73 Tested-by: Gluster Build System Tested-by: Raghavendra G Reviewed-by: Raghavendra G --- xlators/features/marker/src/marker-quota.c | 19 ++++++++----------- xlators/features/marker/src/marker.c | 4 +++- 2 files changed, 11 insertions(+), 12 deletions(-) (limited to 'xlators') diff --git a/xlators/features/marker/src/marker-quota.c b/xlators/features/marker/src/marker-quota.c index 16171bfb8aa..920b951b6ab 100644 --- a/xlators/features/marker/src/marker-quota.c +++ b/xlators/features/marker/src/marker-quota.c @@ -107,16 +107,6 @@ int32_t dirty_inode_updation_done (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret, int32_t op_errno) { - quota_local_t *local = NULL; - int32_t value = 0; - - local = frame->local; - - if (!local->err) - QUOTA_SAFE_DECREMENT (&local->lock, local->ref, value); - else - frame->local = NULL; - QUOTA_STACK_DESTROY (frame, this); return 0; @@ -317,6 +307,9 @@ err: release_lock_on_dirty_inode (frame, NULL, this, 0, 0); } + if (dict) + dict_unref (dict); + return 0; } @@ -978,10 +971,15 @@ quota_get_xattr (call_frame_t *frame, void *cookie, xlator_t *this, STACK_WIND (frame, quota_check_n_set_inode_xattr, FIRST_CHILD(this), FIRST_CHILD(this)->fops->lookup, &local->loc, xattr_req); + dict_unref (xattr_req); + return 0; err: quota_xattr_creation_release_lock (frame, NULL, this, 0, 0); + + if (xattr_req) + dict_unref (xattr_req); return 0; lock_err: @@ -1204,7 +1202,6 @@ quota_mark_undirty (call_frame_t *frame, } newdict = dict_new (); - if (!newdict) goto err; diff --git a/xlators/features/marker/src/marker.c b/xlators/features/marker/src/marker.c index 84c13435f0d..b4cf5080071 100644 --- a/xlators/features/marker/src/marker.c +++ b/xlators/features/marker/src/marker.c @@ -935,7 +935,9 @@ marker_rename_done (call_frame_t *frame, void *cookie, xlator_t *this, newloc.inode = inode_ref (oplocal->loc.inode); newloc.path = gf_strdup (local->loc.path); - newloc.name = gf_strdup (local->loc.name); + newloc.name = strrchr (newloc.path, '/'); + if (newloc.name) + newloc.name++; newloc.parent = inode_ref (local->loc.parent); newloc.ino = oplocal->loc.inode->ino; -- cgit