summaryrefslogtreecommitdiff
path: root/firmware/usb.c
diff options
context:
space:
mode:
authorFrank Gevaerts <frank@gevaerts.be>2010-11-28 15:22:51 +0000
committerFrank Gevaerts <frank@gevaerts.be>2010-11-28 15:22:51 +0000
commit1db3dfdd759476ae4930958ec775fd2009674091 (patch)
treed3f4ca8200a049ecdad0452ca4bb322e452b2ae6 /firmware/usb.c
parent4063389bffe63052da2e78413b0cc1f530733db3 (diff)
downloadrockbox-1db3dfdd759476ae4930958ec775fd2009674091.tar.gz
rockbox-1db3dfdd759476ae4930958ec775fd2009674091.zip
Accept FS#11774 by Michael Hohmuth (with some own modifications to #ifdef conditions)
Unmount all filesystems before connecting USB. This ensures that all filehandles are closed, which avoids possible filesystem corruption git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28693 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/usb.c')
-rw-r--r--firmware/usb.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/firmware/usb.c b/firmware/usb.c
index 9eaf2014fa..6309c1481c 100644
--- a/firmware/usb.c
+++ b/firmware/usb.c
@@ -131,6 +131,7 @@ static inline void usb_slave_mode(bool on)
131#ifdef HAVE_PRIORITY_SCHEDULING 131#ifdef HAVE_PRIORITY_SCHEDULING
132 thread_set_priority(THREAD_ID_CURRENT, PRIORITY_REALTIME); 132 thread_set_priority(THREAD_ID_CURRENT, PRIORITY_REALTIME);
133#endif 133#endif
134 disk_unmount_all();
134 usb_attach(); 135 usb_attach();
135 } 136 }
136 else /* usb_state == USB_INSERTED (only!) */ 137 else /* usb_state == USB_INSERTED (only!) */
@@ -172,6 +173,7 @@ static inline void usb_slave_mode(bool on)
172 if(on) 173 if(on)
173 { 174 {
174 DEBUGF("Entering USB slave mode\n"); 175 DEBUGF("Entering USB slave mode\n");
176 disk_unmount_all();
175 storage_soft_reset(); 177 storage_soft_reset();
176 storage_init(); 178 storage_init();
177 storage_enable(false); 179 storage_enable(false);