|
|
d2787b |
From 2e6a5e504e66bc95208420e4882e453a53ac9ea2 Mon Sep 17 00:00:00 2001
|
|
|
d2787b |
From: schaffung <ssivakum@redhat.com>
|
|
|
d2787b |
Date: Mon, 2 Nov 2020 11:18:01 +0530
|
|
|
d2787b |
Subject: [PATCH 485/511] cli-rpc: conditional init of global quota rpc (#1578)
|
|
|
d2787b |
|
|
|
d2787b |
Issue: It is seem that the initialization of rpc to
|
|
|
d2787b |
connect with quotad is done in every glusterfs cli command,
|
|
|
d2787b |
irrespective of whether the quota feature is enabled or disabled.
|
|
|
d2787b |
This seems to be an overkill.
|
|
|
d2787b |
|
|
|
d2787b |
Code change: The file /var/run/quotad/quotad.pid is present
|
|
|
d2787b |
signals that quotad is enabled. Hence we can put a conditional
|
|
|
d2787b |
check for seeing when this file exists and if it doesn't we
|
|
|
d2787b |
just skip over the initialization of the global quotad rpc.
|
|
|
d2787b |
|
|
|
d2787b |
This will go on to reduce the extra rpc calls and operations
|
|
|
d2787b |
being performed in the kernel space.
|
|
|
d2787b |
|
|
|
d2787b |
>Fixes: #1577
|
|
|
d2787b |
>Change-Id: Icb69d35330f76ce95626f59af75a12726eb620ff
|
|
|
d2787b |
>Signed-off-by: srijan-sivakumar <ssivakumar@redhat.com>
|
|
|
d2787b |
Upstream Patch : https://github.com/gluster/glusterfs/pull/1578
|
|
|
d2787b |
|
|
|
d2787b |
BUG: 1885966
|
|
|
d2787b |
Change-Id: Icb69d35330f76ce95626f59af75a12726eb620ff
|
|
|
d2787b |
Signed-off-by: Srijan Sivakumar <ssivakum@redhat.com>
|
|
|
d2787b |
Reviewed-on: https://code.engineering.redhat.com/gerrit/220371
|
|
|
d2787b |
Tested-by: RHGS Build Bot <nigelb@redhat.com>
|
|
|
d2787b |
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
|
|
|
d2787b |
---
|
|
|
d2787b |
cli/src/cli.c | 18 +++++++++++++-----
|
|
|
d2787b |
cli/src/cli.h | 3 +++
|
|
|
d2787b |
2 files changed, 16 insertions(+), 5 deletions(-)
|
|
|
d2787b |
|
|
|
d2787b |
diff --git a/cli/src/cli.c b/cli/src/cli.c
|
|
|
d2787b |
index 99a16a0..a76c5a2 100644
|
|
|
d2787b |
--- a/cli/src/cli.c
|
|
|
d2787b |
+++ b/cli/src/cli.c
|
|
|
d2787b |
@@ -64,8 +64,7 @@
|
|
|
d2787b |
extern int connected;
|
|
|
d2787b |
/* using argp for command line parsing */
|
|
|
d2787b |
|
|
|
d2787b |
-const char *argp_program_version =
|
|
|
d2787b |
- PACKAGE_NAME" "PACKAGE_VERSION;
|
|
|
d2787b |
+const char *argp_program_version = PACKAGE_NAME " " PACKAGE_VERSION;
|
|
|
d2787b |
const char *argp_program_bug_address = "<" PACKAGE_BUGREPORT ">";
|
|
|
d2787b |
|
|
|
d2787b |
struct rpc_clnt *global_quotad_rpc;
|
|
|
d2787b |
@@ -840,9 +839,18 @@ main(int argc, char *argv[])
|
|
|
d2787b |
if (!global_rpc)
|
|
|
d2787b |
goto out;
|
|
|
d2787b |
|
|
|
d2787b |
- global_quotad_rpc = cli_quotad_clnt_rpc_init();
|
|
|
d2787b |
- if (!global_quotad_rpc)
|
|
|
d2787b |
- goto out;
|
|
|
d2787b |
+ /*
|
|
|
d2787b |
+ * Now, one doesn't need to initialize global rpc
|
|
|
d2787b |
+ * for quota unless and until quota is enabled.
|
|
|
d2787b |
+ * So why not put a check to save all the rpc related
|
|
|
d2787b |
+ * ops here.
|
|
|
d2787b |
+ */
|
|
|
d2787b |
+ ret = sys_access(QUOTAD_PID_PATH, F_OK);
|
|
|
d2787b |
+ if (!ret) {
|
|
|
d2787b |
+ global_quotad_rpc = cli_quotad_clnt_rpc_init();
|
|
|
d2787b |
+ if (!global_quotad_rpc)
|
|
|
d2787b |
+ goto out;
|
|
|
d2787b |
+ }
|
|
|
d2787b |
|
|
|
d2787b |
ret = cli_cmds_register(&state);
|
|
|
d2787b |
if (ret)
|
|
|
d2787b |
diff --git a/cli/src/cli.h b/cli/src/cli.h
|
|
|
d2787b |
index 37e4d9d..c30ae9c 100644
|
|
|
d2787b |
--- a/cli/src/cli.h
|
|
|
d2787b |
+++ b/cli/src/cli.h
|
|
|
d2787b |
@@ -30,6 +30,9 @@
|
|
|
d2787b |
#define CLI_TAB_LENGTH 8
|
|
|
d2787b |
#define CLI_BRICK_STATUS_LINE_LEN 78
|
|
|
d2787b |
|
|
|
d2787b |
+// Quotad pid path.
|
|
|
d2787b |
+#define QUOTAD_PID_PATH "/var/run/gluster/quotad/quotad.pid"
|
|
|
d2787b |
+
|
|
|
d2787b |
/* Geo-rep command positional arguments' index */
|
|
|
d2787b |
#define GEO_REP_CMD_INDEX 1
|
|
|
d2787b |
#define GEO_REP_CMD_CONFIG_INDEX 4
|
|
|
d2787b |
--
|
|
|
d2787b |
1.8.3.1
|
|
|
d2787b |
|