summaryrefslogtreecommitdiffstats
path: root/xlators/features/marker
diff options
context:
space:
mode:
authorJunaid <junaid@gluster.com>2011-07-01 06:25:06 +0000
committerAnand Avati <avati@gluster.com>2011-07-01 05:25:46 -0700
commited4ffc93e3cf982ae959a9ab3e025edf0f8de1c0 (patch)
tree4ea260a46fea2af7be257a1a9ad17c0abc85848d /xlators/features/marker
parentd7536af3164ee80e7b12d7bca305e63e073fb257 (diff)
features/marker-quota: call stack destroy when hardlink count is not greater 1.
Signed-off-by: Junaid <junaid@gluster.com> Signed-off-by: Anand Avati <avati@gluster.com> BUG: 2473 (Support for volume and directory level quota) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2473
Diffstat (limited to 'xlators/features/marker')
-rw-r--r--xlators/features/marker/src/marker-quota.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/xlators/features/marker/src/marker-quota.c b/xlators/features/marker/src/marker-quota.c
index 68a8a26c6fb..8d4f17ea583 100644
--- a/xlators/features/marker/src/marker-quota.c
+++ b/xlators/features/marker/src/marker-quota.c
@@ -1728,6 +1728,8 @@ quota_inode_remove_done (call_frame_t *frame, void *cookie, xlator_t *this,
return 0;
}
+ frame->local = NULL;
+
if (local->hl_count > 1) {
GET_CONTRI_KEY (contri_key, local->contri->gfid, ret);
@@ -1735,6 +1737,8 @@ quota_inode_remove_done (call_frame_t *frame, void *cookie, xlator_t *this,
FIRST_CHILD(this)->fops->removexattr,
&local->loc, contri_key);
ret = 0;
+ } else {
+ quota_removexattr_cbk (frame, NULL, this, 0, 0);
}
if (strcmp (local->parent_loc.path, "/") != 0) {
@@ -1743,7 +1747,9 @@ quota_inode_remove_done (call_frame_t *frame, void *cookie, xlator_t *this,
start_quota_txn (this, &local->loc, local->ctx, local->contri);
}
+ /* TODO: free local in quota_local_unref only*/
quota_local_unref (this, local);
+ GF_FREE (local);
return 0;
}