svn commit: r256472 - projects/zfsd/head/lib/libdevctl

Alan Somers asomers at FreeBSD.org
Mon Oct 14 23:13:04 UTC 2013


Author: asomers
Date: Mon Oct 14 23:13:03 2013
New Revision: 256472
URL: http://svnweb.freebsd.org/changeset/base/256472

Log:
  Fix a few libdevctl bugs found by inspection
  
  	lib/libdevctl/consumer.cc:
  		In Consummer::ConnectToDevd(), invoke DisconnectFromDevd()
  		if our connect fails so that the connection to DevD is
  		recorded as closed.  This avoids fooling future invocations
  		of ConnectToDevd() into thinking the connection is already
  		established.
  
  		In Consumer::FlushEvents(), handle in_avail() returning -1,
  		which indicates and error.
  
  		In Consumer::EventsPending(), update exception string to
  		reflect the conversion of this class from ZfsDaemon to
  		Consumer when it was refactored out of zfsd.
  
  Submitted by:	gibbs
  Approved by:	ken (mentor)
  Obtained from:	Spectra Logic Corporation

Modified:
  projects/zfsd/head/lib/libdevctl/consumer.cc

Modified: projects/zfsd/head/lib/libdevctl/consumer.cc
==============================================================================
--- projects/zfsd/head/lib/libdevctl/consumer.cc	Mon Oct 14 23:06:12 2013	(r256471)
+++ projects/zfsd/head/lib/libdevctl/consumer.cc	Mon Oct 14 23:13:03 2013	(r256472)
@@ -117,6 +117,7 @@ Consumer::ConnectToDevd()
 			 sLen);
 	if (result == -1) {
 		syslog(LOG_INFO, "Unable to connect to devd");
+		DisconnectFromDevd();
 		return (false);
 	}
 
@@ -212,7 +213,7 @@ Consumer::FlushEvents()
 {
 	char discardBuf[256];
 
-	while (m_reader->in_avail())
+	while (m_reader->in_avail() > 0)
 		m_reader->read(discardBuf, sizeof(discardBuf));
 }
 
@@ -233,7 +234,7 @@ Consumer::EventsPending()
 		err(1, "Polling for devd events failed");
 
 	if ((fds->revents & POLLERR) != 0)
-		throw Exception("ZfsdDaemon:EventsPending(): "
+		throw Exception("Consumer::EventsPending(): "
 				"POLLERR detected on devd socket.");
 
 	if ((fds->revents & POLLHUP) != 0)


More information about the svn-src-projects mailing list