quota: vol quota fails when transport.socket.bind-address is set in glusterd

When glusterd is binded to specific IP quota fails, since the server is
hardcoded to localhost. IP can be assigned in the glusterd part of quota,
but IP is not populated in cli part. So Quota makes use of glusterfsd's unix
domain socket transport type.

Change-Id: Ib03332cc203795456ee6087017cea08eed3d7417
BUG: 1277105
Signed-off-by: Mohamed Ashiq <mliyazud@redhat.com>
Signed-off-by: Humble Devassy Chirammal <hchiramm@redhat.com>
Reviewed-on: http://review.gluster.org/12489
Reviewed-by: Manikandan Selvaganesh <mselvaga@redhat.com>
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijaikumar Mallikarjuna <vmallika@redhat.com>
Reviewed-by: Atin Mukherjee <amukherj@redhat.com>
This commit is contained in:
Mohamed Ashiq 2015-11-09 22:09:34 +05:30 committed by Atin Mukherjee
parent 8784535617
commit 0441e50959
2 changed files with 15 additions and 2 deletions

View File

@ -1112,6 +1112,7 @@ gf_cli_create_auxiliary_mount (char *volname)
char pidfile_path[PATH_MAX] = {0,};
char logfile[PATH_MAX] = {0,};
char qpid [16] = {0,};
char *sockpath = NULL;
GLUSTERFS_GET_AUX_MOUNT_PIDFILE (pidfile_path, volname);
@ -1135,8 +1136,15 @@ gf_cli_create_auxiliary_mount (char *volname)
DEFAULT_LOG_FILE_DIRECTORY, volname);
snprintf(qpid, 15, "%d", GF_CLIENT_PID_QUOTA_MOUNT);
if (global_state->glusterd_sock) {
sockpath = global_state->glusterd_sock;
} else {
sockpath = DEFAULT_GLUSTERD_SOCKFILE;
}
ret = runcmd (SBIN_DIR"/glusterfs",
"-s", "localhost",
"--volfile-server", sockpath,
"--volfile-server-transport", "unix",
"--volfile-id", volname,
"-l", logfile,
"-p", pidfile_path,

View File

@ -229,6 +229,7 @@ glusterd_quota_initiate_fs_crawl (glusterd_conf_t *priv, char *volname,
char mountdir[] = "/tmp/mntXXXXXX";
char logfile[PATH_MAX] = {0,};
runner_t runner = {0};
char *volfileserver = NULL;
if (mkdtemp (mountdir) == NULL) {
gf_msg_debug ("glusterd", 0,
@ -239,9 +240,13 @@ glusterd_quota_initiate_fs_crawl (glusterd_conf_t *priv, char *volname,
snprintf (logfile, sizeof (logfile),
DEFAULT_LOG_FILE_DIRECTORY"/%s-quota-crawl.log", volname);
if (dict_get_str (THIS->options, "transport.socket.bind-address",
&volfileserver) != 0)
volfileserver = "localhost";
runinit (&runner);
runner_add_args (&runner, SBIN_DIR"/glusterfs",
"-s", "localhost",
"-s", volfileserver,
"--volfile-id", volname,
"--use-readdirp=no",
"--client-pid", QUOTA_CRAWL_PID,