diff options
author | Frank Gevaerts <frank@gevaerts.be> | 2010-11-28 15:22:51 +0000 |
---|---|---|
committer | Frank Gevaerts <frank@gevaerts.be> | 2010-11-28 15:22:51 +0000 |
commit | 1db3dfdd759476ae4930958ec775fd2009674091 (patch) | |
tree | d3f4ca8200a049ecdad0452ca4bb322e452b2ae6 /firmware/usb.c | |
parent | 4063389bffe63052da2e78413b0cc1f530733db3 (diff) | |
download | rockbox-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.c | 2 |
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); |