diff options
-rw-r--r-- | uisimulator/common/filesystem-sim.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/uisimulator/common/filesystem-sim.c b/uisimulator/common/filesystem-sim.c index df914ebcd7..7a3418021e 100644 --- a/uisimulator/common/filesystem-sim.c +++ b/uisimulator/common/filesystem-sim.c | |||
@@ -34,6 +34,7 @@ | |||
34 | #include "pathfuncs.h" | 34 | #include "pathfuncs.h" |
35 | #include "string-extra.h" | 35 | #include "string-extra.h" |
36 | #include "debug.h" | 36 | #include "debug.h" |
37 | #include "mv.h" | ||
37 | 38 | ||
38 | #ifndef os_fstatat | 39 | #ifndef os_fstatat |
39 | #define USE_OSDIRNAME /* we need to remember the open directory path */ | 40 | #define USE_OSDIRNAME /* we need to remember the open directory path */ |
@@ -204,20 +205,20 @@ void sim_ext_extracted(int drive) | |||
204 | for (unsigned int i = 0; i < MAX_OPEN_FILES; i++) | 205 | for (unsigned int i = 0; i < MAX_OPEN_FILES; i++) |
205 | { | 206 | { |
206 | struct filestr_desc *filestr = &openfiles[i]; | 207 | struct filestr_desc *filestr = &openfiles[i]; |
207 | if (filestr->osfd >= 0 && volume_drive(filestr->volume) == drive) | 208 | if (filestr->osfd >= 0 && IF_MV(volume_drive(filestr->volume) == drive)) |
208 | filestr->mounted = false; | 209 | filestr->mounted = false; |
209 | } | 210 | } |
210 | 211 | ||
211 | for (unsigned int i = 0; i < MAX_OPEN_DIRS; i++) | 212 | for (unsigned int i = 0; i < MAX_OPEN_DIRS; i++) |
212 | { | 213 | { |
213 | struct dirstr_desc *dirstr = &opendirs[i]; | 214 | struct dirstr_desc *dirstr = &opendirs[i]; |
214 | if (dirstr->osdirp && volume_drive(dirstr->volume) == drive) | 215 | if (dirstr->osdirp && IF_MV(volume_drive(dirstr->volume) == drive)) |
215 | dirstr->mounted = false; | 216 | dirstr->mounted = false; |
216 | } | 217 | } |
217 | 218 | ||
218 | (void)drive; | 219 | (void)drive; |
219 | } | 220 | } |
220 | #endif /* HAVE_MULTIDRIVE */ | 221 | #endif /* HAVE_HOTSWAP */ |
221 | 222 | ||
222 | /** | 223 | /** |
223 | * Provides target-like path parsing behavior with single and multiple volumes | 224 | * Provides target-like path parsing behavior with single and multiple volumes |
@@ -314,14 +315,12 @@ int sim_get_os_path(char *buffer, const char *path, size_t bufsize) | |||
314 | 315 | ||
315 | if (next > p) | 316 | if (next > p) |
316 | { | 317 | { |
317 | #ifdef HAVE_MULTIDRIVE | ||
318 | /* Feign failure if the volume isn't "mounted" */ | 318 | /* Feign failure if the volume isn't "mounted" */ |
319 | if (!volume_present(volume)) | 319 | if (!volume_present(volume)) |
320 | { | 320 | { |
321 | errno = ENXIO; | 321 | errno = ENXIO; |
322 | return -1; | 322 | return -1; |
323 | } | 323 | } |
324 | #endif /* HAVE_MULTIDRIVE */ | ||
325 | 324 | ||
326 | sysroot = false; | 325 | sysroot = false; |
327 | 326 | ||