From c0180cc22f5f52f5776c74a6d1ae90100dbb5087 Mon Sep 17 00:00:00 2001 From: Kaushal M Date: Wed, 10 Aug 2011 17:57:04 +0530 Subject: glusterd: fix for volume stop causing inconsistent volume status This fixes problem caused by race between glusterd and glusterfsd occuring when they try to unlink pidfile during volume stop, which led to the volume being stopped, but the status of the volume remained in started state. Change-Id: Ia99bb1a1fc6c78db138211538dfd10c577e82917 BUG: 3147 Reviewed-on: http://review.gluster.com/206 Tested-by: Gluster Build System Reviewed-by: Vijay Bellur --- glusterfsd/src/glusterfsd.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'glusterfsd') diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c index 5ea542ab013..b79753519b3 100644 --- a/glusterfsd/src/glusterfsd.c +++ b/glusterfsd/src/glusterfsd.c @@ -1201,7 +1201,7 @@ glusterfs_pidfile_setup (glusterfs_ctx_t *ctx) int glusterfs_pidfile_cleanup (glusterfs_ctx_t *ctx) { - cmd_args_t *cmd_args = NULL; + cmd_args_t *cmd_args = NULL; cmd_args = &ctx->cmd_args; @@ -1209,18 +1209,18 @@ glusterfs_pidfile_cleanup (glusterfs_ctx_t *ctx) return 0; gf_log ("glusterfsd", GF_LOG_TRACE, - "pidfile %s unlocking", + "pidfile %s cleanup", cmd_args->pid_file); - lockf (fileno (ctx->pidfp), F_ULOCK, 0); - fclose (ctx->pidfp); - ctx->pidfp = NULL; - if (ctx->cmd_args.pid_file) { unlink (ctx->cmd_args.pid_file); ctx->cmd_args.pid_file = NULL; } + lockf (fileno (ctx->pidfp), F_ULOCK, 0); + fclose (ctx->pidfp); + ctx->pidfp = NULL; + return 0; } -- cgit