summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaghavendra G <raghavendra@gluster.com>2011-09-13 15:15:10 +0530
committerVijay Bellur <vijay@gluster.com>2011-09-14 04:01:59 -0700
commit4a7d4dcd70bfc480ea20ae10d44257e56e86789c (patch)
tree6d00cd927c51401c582c07b5c23ffd59a720a449
parent9a16332d518c6318b761b230a0e1bb8ce357228e (diff)
features/quota: explicitly create xattrs in marker_create_cbk
- the earlier approach of creating quota related xattrs through side-effect of updating size and contribution values won't work, since when no contribution xattr is present, the updation process treats contribution value as zero and hence will be equal to size of freshly created files Change-Id: If9b2063b1ac3a4cf50d3fe2c81e907bc8eccb677 BUG: 3531 Reviewed-on: http://review.gluster.com/385 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Mohammed Junaid <junaid@gluster.com>
-rw-r--r--xlators/features/marker/src/marker-quota.c8
-rw-r--r--xlators/features/marker/src/marker.c6
2 files changed, 11 insertions, 3 deletions
diff --git a/xlators/features/marker/src/marker-quota.c b/xlators/features/marker/src/marker-quota.c
index 7bc912d7eb1..0d2eb9e71b3 100644
--- a/xlators/features/marker/src/marker-quota.c
+++ b/xlators/features/marker/src/marker-quota.c
@@ -889,9 +889,17 @@ int32_t
mq_inode_creation_done (call_frame_t *frame, void *cookie, xlator_t *this,
int32_t op_ret, int32_t op_errno)
{
+ quota_local_t *local = NULL;
+
if (frame == NULL)
return 0;
+ local = frame->local;
+
+ if (local != NULL) {
+ mq_initiate_quota_txn (this, &local->loc);
+ }
+
QUOTA_STACK_DESTROY (frame, this);
return 0;
diff --git a/xlators/features/marker/src/marker.c b/xlators/features/marker/src/marker.c
index 89da0893295..36ce3d79e23 100644
--- a/xlators/features/marker/src/marker.c
+++ b/xlators/features/marker/src/marker.c
@@ -539,7 +539,7 @@ marker_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
priv = this->private;
if (priv->feature_enabled & GF_QUOTA)
- mq_inspect_file_xattr (this, &local->loc, NULL, *buf);
+ mq_set_inode_xattr (this, &local->loc);
if (priv->feature_enabled & GF_XTIME)
marker_xtime_update_marks (this, local);
@@ -1610,7 +1610,7 @@ marker_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
priv = this->private;
if (priv->feature_enabled & GF_QUOTA)
- mq_inspect_file_xattr (this, &local->loc, NULL, *buf);
+ mq_set_inode_xattr (this, &local->loc);
if (priv->feature_enabled & GF_XTIME)
marker_xtime_update_marks (this, local);
@@ -1679,7 +1679,7 @@ marker_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
priv = this->private;
if ((priv->feature_enabled & GF_QUOTA) && (S_ISREG (local->mode))) {
- mq_inspect_file_xattr (this, &local->loc, NULL, *buf);
+ mq_set_inode_xattr (this, &local->loc);
}
if (priv->feature_enabled & GF_XTIME)