Index: trunk/Nebulous-Server/lib/Nebulous/Server/SQL.pm
===================================================================
--- trunk/Nebulous-Server/lib/Nebulous/Server/SQL.pm	(revision 24500)
+++ trunk/Nebulous-Server/lib/Nebulous/Server/SQL.pm	(revision 24539)
@@ -517,5 +517,6 @@
     name VARCHAR(255) UNIQUE NOT NULL,
     host VARCHAR(255) NOT NULL,
-    path VARCHAR(255) NOT NULL,
+    path VARCHAR(255) UNIQUE NOT NULL,
+    mountpoint VARCHAR(255) NOT NULL,
     allocate BOOLEAN DEFAULT FALSE,
     available BOOLEAN DEFAULT FALSE,
@@ -523,5 +524,5 @@
     PRIMARY KEY(vol_id),
     KEY(host(16)),
-    KEY(path(255)),
+    KEY(mountpoint(255)),
     KEY(allocate),
     KEY(available)
@@ -609,7 +610,7 @@
 
     -- store the okey checking state
-    SELECT @@FOREIGN_KEY_CHECKS INTO key_checks; 
+--    SELECT @@FOREIGN_KEY_CHECKS INTO key_checks; 
     -- disable foregin check checks to prevent deadlocks on the mountedvol table
-    SET FOREIGN_KEY_CHECKS=0;
+--    SET FOREIGN_KEY_CHECKS=0;
 
     -- make sure the temp table does not already exist... this can happy if the
@@ -630,10 +631,8 @@
     OPEN cur1;
 
-    DELETE FROM mountedvol;
-
     myloop: LOOP
         FETCH cur1 INTO vol_idvar, namevar, hostvar, pathvar, allocatevar, availablevar, xattrvar;
         IF `done` THEN LEAVE myloop; END IF;
-        INSERT INTO mountedvol
+        REPLACE INTO mountedvol
             SELECT mountpoint, total, used, vol_idvar, namevar, hostvar, pathvar, allocatevar, availablevar, xattrvar
             FROM
@@ -651,9 +650,9 @@
 
     -- restore the original key checking state
-    SET @@FOREIGN_KEY_CHECKS = key_checks; 
+--    SET @@FOREIGN_KEY_CHECKS = key_checks; 
 
     DROP TABLE IF EXISTS myvolume;
 
-    SET FOREIGN_KEY_CHECKS=1;
+--    SET FOREIGN_KEY_CHECKS=1;
 
     COMMIT;
