From 7a578ddf23794d8a95000ce950807c88de74dfce Mon Sep 17 00:00:00 2001 From: Gaurav Kumar Garg Date: Wed, 12 Aug 2015 15:00:29 +0530 Subject: [PATCH 276/279] libglusterfs: write error handling when filesystem have no space left This is a backport of: http://review.gluster.org/#/c/11029/ When no space left on filesystem and user want to perform any operation which result to change in /var/lib/glusterd/* files then glusterd is failing to write on temporary file. Fix is to handle error when write failed on temporary files due to no space left on file system. >Change-Id: I79d595776b42580da35e1282b4a3cd7fe3d14afe >BUG: 1226829 >Signed-off-by: Gaurav Kumar Garg Change-Id: Ifae5d27698025bb3b5cf7235449565575e762451 BUG: 1226665 Signed-off-by: Gaurav Kumar Garg Reviewed-on: https://code.engineering.redhat.com/gerrit/54977 Reviewed-by: Niels de Vos Tested-by: Niels de Vos --- libglusterfs/src/store.c | 12 ++++++------ 1 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libglusterfs/src/store.c b/libglusterfs/src/store.c index 7c8b29d..8442b31 100644 --- a/libglusterfs/src/store.c +++ b/libglusterfs/src/store.c @@ -345,15 +345,15 @@ gf_store_save_value (int fd, char *key, char *value) fp = fdopen (dup_fd, "a+"); if (fp == NULL) { - gf_msg ("", GF_LOG_WARNING, errno, LG_MSG_FILE_OP_FAILED, - "fdopen failed."); + gf_msg (THIS->name, GF_LOG_WARNING, errno, + LG_MSG_FILE_OP_FAILED, "fdopen failed."); ret = -1; goto out; } ret = fprintf (fp, "%s=%s\n", key, value); if (ret < 0) { - gf_msg ("", GF_LOG_WARNING, errno, LG_MSG_FILE_OP_FAILED, + gf_msg (THIS->name, GF_LOG_WARNING, errno, LG_MSG_FILE_OP_FAILED, "Unable to store key: %s, value: %s.", key, value); ret = -1; @@ -361,8 +361,8 @@ gf_store_save_value (int fd, char *key, char *value) } ret = fflush (fp); - if (feof (fp)) { - gf_msg ("", GF_LOG_WARNING, errno, LG_MSG_FILE_OP_FAILED, + if (ret) { + gf_msg (THIS->name, GF_LOG_WARNING, errno, LG_MSG_FILE_OP_FAILED, "fflush failed."); ret = -1; goto out; @@ -373,7 +373,7 @@ out: if (fp) fclose (fp); - gf_msg_debug ("", 0, "returning: %d", ret); + gf_msg_debug (THIS->name, 0, "returning: %d", ret); return ret; } -- 1.7.1