[lvm-devel] master - cleanup: clvmd rewrite send_message

Zdenek Kabelac zkabelac at fedoraproject.org
Mon Mar 10 11:27:04 UTC 2014


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=3d23404081b264c7bfdd0668ee72fd3aa692c935
Commit:        3d23404081b264c7bfdd0668ee72fd3aa692c935
Parent:        cbca815dc44e805d6e4cc138c28af73f1e47432a
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Sat Mar 8 23:14:46 2014 +0100
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Mon Mar 10 12:24:09 2014 +0100

cleanup: clvmd rewrite send_message

Improve readability of code and make it clear what it tries
to achieve.
---
 daemons/clvmd/clvmd.c |   57 +++++++++++++++++-------------------------------
 1 files changed, 20 insertions(+), 37 deletions(-)

diff --git a/daemons/clvmd/clvmd.c b/daemons/clvmd/clvmd.c
index e8375a8..c7ad2da 100644
--- a/daemons/clvmd/clvmd.c
+++ b/daemons/clvmd/clvmd.c
@@ -2024,8 +2024,8 @@ static void send_version_message(void)
 static int send_message(void *buf, int msglen, const char *csid, int fd,
 			const char *errtext)
 {
-	int len = 0;
-	int saved_errno = 0;
+	int len;
+	int ptr;
 	struct timespec delay;
 	struct timespec remtime;
 
@@ -2035,43 +2035,26 @@ static int send_message(void *buf, int msglen, const char *csid, int fd,
 	if (csid == NULL || !ISLOCAL_CSID(csid)) {
 		hton_clvm((struct clvm_header *) buf);
 		return clops->cluster_send_message(buf, msglen, csid, errtext);
-	} else {
-		int ptr = 0;
-
-		/* Make sure it all goes */
-		do {
-			if (retry_cnt > MAX_RETRIES)
-			{
-				errno = saved_errno;
-				log_error("%s", errtext);
-				errno = saved_errno;
-				break;
-			}
-
-			len = write(fd, (char*)buf + ptr, msglen - ptr);
-
-			if (len <= 0) {
-				if (errno == EINTR)
-					continue;
-				if (errno == EAGAIN ||
-				    errno == EIO ||
-				    errno == ENOSPC) {
-					saved_errno = errno;
-					retry_cnt++;
-
-					delay.tv_sec = 0;
-					delay.tv_nsec = 100000;
-					remtime.tv_sec = 0;
-					remtime.tv_nsec = 0;
-					(void) nanosleep (&delay, &remtime);
+	}
 
-					continue;
-				}
-				log_error("%s", errtext);
-				break;
+	/* Make sure it all goes */
+	for (ptr = 0; ptr < msglen;) {
+		if ((len = write(fd, (char*)buf + ptr, msglen - ptr)) <= 0) {
+			if (errno == EINTR)
+				continue;
+			if ((errno == EAGAIN || errno == EIO || errno == ENOSPC) &&
+			    ++retry_cnt < MAX_RETRIES) {
+				delay.tv_sec = 0;
+				delay.tv_nsec = 100000;
+				remtime.tv_sec = 0;
+				remtime.tv_nsec = 0;
+				(void) nanosleep (&delay, &remtime);
+				continue;
 			}
-			ptr += len;
-		} while (ptr < msglen);
+			log_error("%s", errtext);
+			break;
+		}
+		ptr += len;
 	}
 	return len;
 }




More information about the lvm-devel mailing list