From 848788e37929f5c636af5c454545fc62f58122c5 Mon Sep 17 00:00:00 2001 From: Ashish Pandey Date: Wed, 15 Jul 2015 16:37:37 +0530 Subject: ec : trusted.ec.version xattr of all root directories of all bricks should be same. Problem: After replacing the brick using "replace-brick" command and running "heal full", the version of the root directory of the newly added brick is not getting healed. heal starts running on the dentries of the root but does not run on root directory. Solution: Run heal on root directory. > Change-Id: Ifd42a3fb341b049c895817e892e5b484a5aa6f80 > BUG: 1243382 > Signed-off-by: Ashish Pandey > Reviewed-on: http://review.gluster.org/11676 > Reviewed-by: Pranith Kumar Karampuri > Tested-by: NetBSD Build System Change-Id: Ifd42a3fb341b049c895817e892e5b484a5aa6f80 BUG: 1243384 Signed-off-by: Ashish Pandey Reviewed-on: http://review.gluster.org/11755 Tested-by: Gluster Build System Tested-by: NetBSD Build System Reviewed-by: Pranith Kumar Karampuri --- xlators/cluster/ec/src/ec-heald.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'xlators/cluster/ec') diff --git a/xlators/cluster/ec/src/ec-heald.c b/xlators/cluster/ec/src/ec-heald.c index 75f58487264..4498d2e8db2 100644 --- a/xlators/cluster/ec/src/ec-heald.c +++ b/xlators/cluster/ec/src/ec-heald.c @@ -379,12 +379,14 @@ ec_shd_full_healer (void *data) { struct subvol_healer *healer = NULL; xlator_t *this = NULL; + loc_t rootloc = {0}; int run = 0; healer = data; THIS = this = healer->this; + rootloc.inode = this->itable->root; for (;;) { pthread_mutex_lock (&healer->mutex); { @@ -404,6 +406,7 @@ ec_shd_full_healer (void *data) "starting full sweep on subvol %s", ec_subvol_name (this, healer->subvol)); + ec_shd_selfheal (healer, healer->subvol, &rootloc); ec_shd_full_sweep (healer, this->itable->root); gf_msg (this->name, GF_LOG_INFO, 0, -- cgit