summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaushal M <kaushal@gluster.com>2011-07-19 09:05:54 +0530
committerAnand Avati <avati@gluster.com>2011-07-21 06:38:42 -0700
commit2d29b67a63779ac7b115d214bb037c12b122cf2f (patch)
tree8b65610b4dc1d614f477596107b791d009a01702
parent37b4b7ccad5a479ed2ce96598e902a12fd457bd5 (diff)
glusterfsd: check for process mode before performing mount
create_fuse_mount() now checks if it is a client process before performing mount. If not a client process, it returns an error. Added changes suggested Change-Id: If8548ad60d345bb8cd09686ceed0d83522799761 BUG: 2469 Reviewed-on: http://review.gluster.com/5 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Anand Avati <avati@gluster.com>
-rw-r--r--glusterfsd/src/glusterfsd.c14
-rw-r--r--libglusterfs/src/glusterfs.h1
2 files changed, 12 insertions, 3 deletions
diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c
index b5d6bd61fb0..35cb286ea0f 100644
--- a/glusterfsd/src/glusterfsd.c
+++ b/glusterfsd/src/glusterfsd.c
@@ -78,6 +78,10 @@
#include "daemon.h"
+/* process mode definitions */
+#define GF_SERVER_PROCESS 0
+#define GF_CLIENT_PROCESS 1
+#define GF_GLUSTERD_PROCESS 2
/* using argp for command line parsing */
static char gf_doc[] = "";
@@ -201,6 +205,12 @@ create_fuse_mount (glusterfs_ctx_t *ctx)
return 0;
}
+ if (ctx->process_mode != GF_CLIENT_PROCESS) {
+ gf_log("glusterfsd", GF_LOG_ERROR,
+ "Not a client process, not performing mount operation");
+ return -1;
+ }
+
master = GF_CALLOC (1, sizeof (*master),
gfd_mt_xlator_t);
if (!master)
@@ -834,9 +844,6 @@ generate_uuid ()
return gf_strdup (tmp_str);
}
-#define GF_SERVER_PROCESS 0
-#define GF_CLIENT_PROCESS 1
-#define GF_GLUSTERD_PROCESS 2
static uint8_t
gf_get_process_mode (char *exec_name)
@@ -1073,6 +1080,7 @@ parse_cmdline (int argc, char *argv[], glusterfs_ctx_t *ctx)
}
process_mode = gf_get_process_mode (argv[0]);
+ ctx->process_mode = process_mode;
/* Make sure after the parsing cli, if '--volfile-server' option is
given, then '--volfile-id' is mandatory */
diff --git a/libglusterfs/src/glusterfs.h b/libglusterfs/src/glusterfs.h
index 78af68c0081..c746cfe023b 100644
--- a/libglusterfs/src/glusterfs.h
+++ b/libglusterfs/src/glusterfs.h
@@ -343,6 +343,7 @@ struct _glusterfs_ctx {
indicate how many times the graph has
got changed */
pid_t mtab_pid; /* pid of the process which updates the mtab */
+ int process_mode; /*mode in which process is runninng*/
};
typedef struct _glusterfs_ctx glusterfs_ctx_t;