View difference between Paste ID: sJX1iLBV and
SHOW: | | - or go back to the newest paste.
1-
1+
Index: firmware/common/disk.c
2
===================================================================
3
--- firmware/common/disk.c	(revision 29021)
4
+++ firmware/common/disk.c	(working copy)
5
@@ -263,19 +263,23 @@
6
 
7
 int disk_unmount_all(void)
8
 {
9
-#ifndef HAVE_MULTIDRIVE
10
-    return disk_unmount(0);
11
-#else  /* HAVE_MULTIDRIVE */
12
     int unmounted = 0;
13
     int i;
14
-    for (i = 0; i < NUM_DRIVES; i++)
15
+#ifdef HAVE_HOTSWAP
16
+    mutex_lock(&disk_mutex);
17
+#endif
18
+    for (i=0; i<NUM_VOLUMES; i++)
19
     {
20
+        if(vol_drive[i] >= 0)
21
+        {
22
+            vol_drive[i] = -1; /* mark unused */
23
+            unmounted++;
24
+            release_files(i);
25
+            release_dirs(i);
26
+            fat_unmount(i, true);
27
+        }
28
+    }
29
 #ifdef HAVE_HOTSWAP
30
-        if (storage_present(i))
31
+    mutex_unlock(&disk_mutex);
32
 #endif
33
-            unmounted += disk_unmount(i);
34
-    }
35
 
36
     return unmounted;
37
-#endif  /* HAVE_MULTIDRIVE */
38
 }