diff options
author | Pranith Kumar K <pranithk@gluster.com> | 2011-12-20 10:05:12 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2011-12-22 05:18:11 -0800 |
commit | d7d9f3d4002d31ceefed6ce80ec7567eca9ba6d3 (patch) | |
tree | c17e78eb3caee1df305bc612b22b402d36598037 /xlators/cluster/afr/src/afr-self-heal-common.c | |
parent | 5ccbfdd87bebbc4c65a76c72191ac564ff844df8 (diff) |
cluster/afr: Set pargfid when missingv3.3.0qa18
client asserts for missing pargfid in case of unlink. So
Afr needs to make sure it is present in that fop.
Change-Id: Iea0ad65e1e7254c8df412942c52d5870e853aa51
BUG: 769055
Signed-off-by: Pranith Kumar K <pranithk@gluster.com>
Reviewed-on: http://review.gluster.com/2495
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
Diffstat (limited to 'xlators/cluster/afr/src/afr-self-heal-common.c')
-rw-r--r-- | xlators/cluster/afr/src/afr-self-heal-common.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/xlators/cluster/afr/src/afr-self-heal-common.c b/xlators/cluster/afr/src/afr-self-heal-common.c index 2d37eaad51f..44bced74cc6 100644 --- a/xlators/cluster/afr/src/afr-self-heal-common.c +++ b/xlators/cluster/afr/src/afr-self-heal-common.c @@ -1385,6 +1385,7 @@ afr_sh_remove_entry_cbk (call_frame_t *frame, xlator_t *this, int child, void afr_sh_call_entry_expunge_remove (call_frame_t *frame, xlator_t *this, int child_index, struct iatt *buf, + struct iatt *parentbuf, afr_expunge_done_cbk_t expunge_done) { call_frame_t *expunge_frame = NULL; @@ -1408,7 +1409,8 @@ afr_sh_call_entry_expunge_remove (call_frame_t *frame, xlator_t *this, expunge_sh->sh_frame = frame; loc_copy (&expunge_local->loc, &local->loc); sh->expunge_done = expunge_done; - afr_sh_entry_expunge_remove (expunge_frame, this, child_index, buf); + afr_sh_entry_expunge_remove (expunge_frame, this, child_index, buf, + parentbuf); return; out: gf_log (this->name, GF_LOG_ERROR, "Expunge of %s failed, reason: %s", @@ -1540,6 +1542,7 @@ afr_sh_purge_entry_common (call_frame_t *frame, xlator_t *this, "on %d", local->loc.path, i); afr_sh_call_entry_expunge_remove (frame, this, (long) i, &sh->buf[i], + &sh->parentbufs[i], afr_sh_remove_entry_cbk); } out: |