Index: trunk/Nebulous-Server/bin/nebdiskd
===================================================================
--- trunk/Nebulous-Server/bin/nebdiskd	(revision 13023)
+++ trunk/Nebulous-Server/bin/nebdiskd	(revision 13251)
@@ -3,5 +3,5 @@
 # Copyright (C) 2007  Joshua Hoblitt
 # 
-# $Id: nebdiskd,v 1.3 2007-04-25 19:52:49 jhoblitt Exp $
+# $Id: nebdiskd,v 1.4 2007-05-04 23:36:46 jhoblitt Exp $
 
 use strict;
@@ -98,17 +98,26 @@
         stat_dirs($mounts);
 
-        my $query = $dbh->prepare_cached("INSERT INTO mount VALUES(?, ?, ?)");
-        $dbh->do("DELETE FROM mount");
-        print "flushed mount table\n" if $debug;
-
-        my $stats = $lxs->get;
-        foreach my $dev (keys %$stats) {
-            my $mnt = $stats->{$dev};
-            my %mount;
-            $query->execute(@$mnt{qw( mountpoint total usage )});
-            print "adding $mnt->{mountpoint} to db\n" if $debug;
+        eval {
+            my $query = $dbh->prepare_cached("INSERT INTO mount VALUES(?, ?, ?)");
+            $dbh->do("DELETE FROM mount");
+
+            print "flushed mount table\n" if $debug;
+
+            my $stats = $lxs->get;
+            foreach my $dev (keys %$stats) {
+                my $mnt = $stats->{$dev};
+                my %mount;
+                $query->execute(@$mnt{qw( mountpoint total usage )});
+                print "adding $mnt->{mountpoint} to db\n" if $debug;
+            }
+
+            $dbh->do("call getmountedvol()");
+
+            $dbh->commit;
+        };
+        if ($@) {
+            $db->rollback;
+            warn $@;
         }
-
-        $dbh->commit;
 
         sleep $poll_interval;
@@ -155,6 +164,12 @@
     );
 
-    $dbh->do( $sql->set_transaction_model );
-    $dbh->commit;
+    eval {
+        $dbh->do( $sql->set_transaction_model );
+        $dbh->commit;
+    };
+    if ($@) { 
+        $db->rollback;
+        die $@;
+    }
 
     return $dbh;
