Index: trunk/Nebulous-Server/bin/nebdiskd
===================================================================
--- trunk/Nebulous-Server/bin/nebdiskd	(revision 26380)
+++ trunk/Nebulous-Server/bin/nebdiskd	(revision 27103)
@@ -69,4 +69,5 @@
 # stuff to controll failures.
 my %host_failure_counts = ();
+my %host_removed = ();
 my $failure_limit = 5;
 
@@ -96,5 +97,5 @@
 # start up logging
 my $conf = '
-    log4perl.category.nebdiskd = WARN, Screen, SERVERLOGFILE, Mailer
+    log4perl.category.nebdiskd = WARN, Screen, SERVERLOGFILE
 
     log4perl.appender.Screen        = Log::Log4perl::Appender::Screen
@@ -113,16 +114,18 @@
     log4perl.filter.MatchWarn.AcceptOnMatch = off
 
-    log4perl.appender.Mailer         = Log::Dispatch::Email::MailSend
-    log4perl.appender.Mailer.to      = ps-ipp-ops@ifa.hawaii.edu
-    log4perl.appender.Mailer.subject = nebdiskd alert
-    log4perl.appender.Mailer.buffered = 0
-    log4perl.appender.Mailer.Filter= MatchWarn
-    log4perl.appender.Mailer.layout = Log::Log4perl::Layout::PatternLayout
-    log4perl.appender.Mailer.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} | %H | %p | %M - %m%n
-
     log4perl.appender.Limiter              = Log::Log4perl::Appender::Limit
     log4perl.appender.Limiter.appender     = Mailer
     log4perl.appender.Limiter.block_period = 300
 ';
+# I've removed this bit.
+#     log4perl.appender.Mailer         = Log::Dispatch::Email::MailSend
+#     log4perl.appender.Mailer.to      = ps-ipp-ops@ifa.hawaii.edu
+#     log4perl.appender.Mailer.subject = nebdiskd alert
+#     log4perl.appender.Mailer.buffered = 0
+#     log4perl.appender.Mailer.Filter= MatchWarn
+#     log4perl.appender.Mailer.layout = Log::Log4perl::Layout::PatternLayout
+#     log4perl.appender.Mailer.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} | %H | %p | %M - %m%n
+
+
 Log::Log4perl::init(\$conf);
 my $log = Log::Log4perl::get_logger("nebdiskd");
@@ -215,5 +218,7 @@
                 $tries++;
                 unless (is_mountpoint($mountpoint)) {
-                    $log->warn("$mountpoint is not a valid mountpoint ($tries)");
+		    unless(defined($host_removed{$mountpoint})) {
+			$log->warn("$mountpoint is not a valid mountpoint ($tries $host_failure_counts{$mountpoint})");
+		    }
 		    $valid_mountpoint = 0;
                 }
@@ -226,15 +231,20 @@
                 }
 		$host_failure_counts{$mountpoint}++;
-
-		if ($host_failure_counts{$mountpoint} > $failure_limit) {
-		    $log->warn("Removing $mountpoint from the mountedvol table ($host_failure_counts{$mountpoint} > $failure_limit)");
-		    $d_query->execute($mountpoint);
+		
+		if (!(defined($host_removed{$mountpoint})) || !($host_removed{$mountpoint})) {
+		    if (($host_failure_counts{$mountpoint} > $failure_limit)) {
+			$host_removed{$mountpoint} = 1;
+			$log->warn("Removing $mountpoint from the mountedvol table ($host_failure_counts{$mountpoint} > $failure_limit) No further warnings unless state changes.");
+			$d_query->execute($mountpoint);
+		    }
+		    else {
+			$log->warn("Mountpoint $mountpoint has had $host_failure_counts{$mountpoint} failures. Will remove after $failure_limit");
+		    }
 		}
-		else {
-		    $log->warn("Mountpoint $mountpoint has had $host_failure_counts{$mountpoint} failures. Will remove after $failure_limit");
-		}
-                next;
-            }
+		next;
+		
+	    }
 	    if ($host_failure_counts{$mountpoint} != 0) {
+		$host_removed{$mountpoint} = 0;
 		$log->warn("Mountpoint $mountpoint failures cleared ($host_failure_counts{$mountpoint})");
 		$host_failure_counts{$mountpoint} = 0;
