From d6f88e9edb564ed2300939e4f4fb6d83ac7fc5b6 Mon Sep 17 00:00:00 2001 From: Brian Foster Date: Mon, 23 Jul 2012 13:34:27 -0400 Subject: 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 Reviewed-on: http://review.gluster.com/3713 Tested-by: Gluster Build System Reviewed-by: Anand Avati --- xlators/cluster/afr/src/afr-dir-write.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'xlators/cluster/afr/src/afr-dir-write.c') diff --git a/xlators/cluster/afr/src/afr-dir-write.c b/xlators/cluster/afr/src/afr-dir-write.c index ca2c3a235f4..759fa058103 100644 --- a/xlators/cluster/afr/src/afr-dir-write.c +++ b/xlators/cluster/afr/src/afr-dir-write.c @@ -105,7 +105,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; @@ -167,8 +167,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; -- cgit