diff options
author | Sanju Rakonde <srakonde@redhat.com> | 2018-10-30 16:36:50 +0530 |
---|---|---|
committer | Atin Mukherjee <amukherj@redhat.com> | 2018-11-02 02:08:53 +0000 |
commit | 6e8f7bb6ab457cfee42e405243cf4db82a9a56b8 (patch) | |
tree | 8964a39fafa9be837f5d25ef54fae23238cfb4af /xlators/mgmt/glusterd | |
parent | 5d0c8e8ec9b68352cf53f8e430897096e2caf477 (diff) |
glusterd: set fsid while performing replace brick
While performing the replace-brick operation, we should set
fsid value to the new brick.
fixes: bz#1637196
Change-Id: I9e9a4962fc0c2f5dff43e4ac11767814a0c0beaf
Signed-off-by: Sanju Rakonde <srakonde@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-replace-brick.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-replace-brick.c b/xlators/mgmt/glusterd/src/glusterd-replace-brick.c index 1248910990f..4c0982e87e2 100644 --- a/xlators/mgmt/glusterd/src/glusterd-replace-brick.c +++ b/xlators/mgmt/glusterd/src/glusterd-replace-brick.c @@ -347,6 +347,9 @@ glusterd_op_perform_replace_brick(glusterd_volinfo_t *volinfo, char *old_brick, int32_t ret = -1; xlator_t *this = NULL; glusterd_conf_t *conf = NULL; + struct statvfs brickstat = { + 0, + }; this = THIS; GF_ASSERT(this); @@ -365,6 +368,21 @@ glusterd_op_perform_replace_brick(glusterd_volinfo_t *volinfo, char *old_brick, if (ret) goto out; + if (!gf_uuid_compare(new_brickinfo->uuid, MY_UUID)) { + ret = sys_statvfs(new_brickinfo->path, &brickstat); + if (ret) { + gf_msg(this->name, GF_LOG_ERROR, errno, GD_MSG_STATVFS_FAILED, + "Failed to fetch disk utilization " + "from the brick (%s:%s). Please check the health of " + "the brick. Error code was %s", + new_brickinfo->hostname, new_brickinfo->path, + strerror(errno)); + + goto out; + } + new_brickinfo->statfs_fsid = brickstat.f_fsid; + } + ret = glusterd_volume_brickinfo_get_by_brick(old_brick, volinfo, &old_brickinfo, _gf_false); if (ret) |