summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Foster <bfoster@redhat.com>2012-07-23 13:34:27 -0400
committerVijay Bellur <vijay@gluster.com>2012-07-24 13:12:09 +0530
commit827dfe66ea03dca2f268567e031d0e7b625c8129 (patch)
tree78ec78cb72e4599f20ce62360ebd360701e66d8b
parent2b6dd3982d8664867f36b695d2f14b040e1537d4 (diff)
afr: pass back xdata in create
A striped, replicated volume spits an error on file creation because stripe requires xdata to process stripe information and AFR isn't passing it back. This fix was suggested by Amar Tumballi. BUG: 842373 Change-Id: Ia7063590ca5e873d4a4e155989cf067e8a07501f Signed-off-by: Brian Foster <bfoster@redhat.com> Reviewed-on: http://review.gluster.com/3713 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@redhat.com>
-rw-r--r--xlators/cluster/afr/src/afr-dir-write.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/xlators/cluster/afr/src/afr-dir-write.c b/xlators/cluster/afr/src/afr-dir-write.c
index b7e9bd8748a..cf223cada79 100644
--- a/xlators/cluster/afr/src/afr-dir-write.c
+++ b/xlators/cluster/afr/src/afr-dir-write.c
@@ -98,7 +98,7 @@ afr_create_unwind (call_frame_t *frame, xlator_t *this)
local->cont.create.inode,
unwind_buf, &local->cont.create.preparent,
&local->cont.create.postparent,
- NULL);
+ local->xdata_rsp);
}
return 0;
@@ -160,8 +160,11 @@ afr_create_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
fd_ctx->opened_on[child_index] = AFR_FD_OPENED;
fd_ctx->flags = local->cont.create.flags;
- if (local->success_count == 0)
+ if (local->success_count == 0) {
local->cont.create.buf = *buf;
+ if (xdata)
+ local->xdata_rsp = dict_ref(xdata);
+ }
if (child_index == local->read_child_index) {
local->cont.create.read_child_buf = *buf;