glusterd: Avoid ret value of glusterd_resolve_brick in retreive brick path

In glusterd_store_retrieve_bricks() commit a60c39d introduced
glusterd_resolve_brick () call to resolve all the bricks which is incorrect
since by the time peerinfo list may not be constructed. The requirement here was
to get the local brick's uuid populated and match that with MY_UUID.

Fix is to overlook the return code of glusterd_resolve_brick() to ensure that
the failure in resolving non local bricks are genuine and expected.

Change-Id: I22822ae5b4e96fe4eacd50ea5c41e58061557106
BUG: 1313901
Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-on: http://review.gluster.org/13588
Smoke: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Gaurav Kumar Garg <ggarg@redhat.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Kaushal M <kaushal@redhat.com>
This commit is contained in:
Atin Mukherjee 2016-03-03 12:24:49 +05:30 committed by Kaushal M
parent 14609729da
commit 92273862de

View File

@ -2402,9 +2402,12 @@ glusterd_store_retrieve_bricks (glusterd_volinfo_t *volinfo)
GLUSTERD_ASSIGN_BRICKID_TO_BRICKINFO (brickinfo, volinfo,
brickid++);
}
ret = glusterd_resolve_brick (brickinfo);
if (ret)
goto out;
/* By now if the brick is a local brick then it will be able to
* resolve which is the only thing we want now for checking
* whether the brickinfo->uuid matches with MY_UUID for realpath
* check. Hence do not handle error
*/
(void)glusterd_resolve_brick (brickinfo);
if (!gf_uuid_compare(brickinfo->uuid, MY_UUID)) {
if (!realpath (brickinfo->path, abspath)) {
gf_msg (this->name, GF_LOG_CRITICAL, errno,