summaryrefslogtreecommitdiff
path: root/shared-module
diff options
context:
space:
mode:
Diffstat (limited to 'shared-module')
-rw-r--r--shared-module/storage/__init__.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/shared-module/storage/__init__.c b/shared-module/storage/__init__.c
index 97a049bac..3e7b90384 100644
--- a/shared-module/storage/__init__.c
+++ b/shared-module/storage/__init__.c
@@ -109,19 +109,15 @@ void common_hal_storage_umount_object(mp_obj_t vfs_obj) {
mp_vfs_proxy_call(vfs, MP_QSTR_umount, 0, NULL);
}
-void common_hal_storage_umount_path(const char* mount_path) {
- // remove vfs from the mount table
- mp_obj_t *vfs_obj = NULL;
+STATIC mp_obj_t storage_object_from_path(const char* mount_path) {
for (mp_vfs_mount_t **vfsp = &MP_STATE_VM(vfs_mount_table); *vfsp != NULL; vfsp = &(*vfsp)->next) {
if (strcmp(mount_path, (*vfsp)->str) == 0) {
- vfs_obj = (*vfsp)->obj;
- break;
+ return (*vfsp)->obj;
}
}
+ mp_raise_OSError(MP_EINVAL);
+}
- if (vfs_obj == NULL) {
- mp_raise_OSError(MP_EINVAL);
- }
-
- common_hal_storage_umount_object(vfs_obj);
+void common_hal_storage_umount_path(const char* mount_path) {
+ common_hal_storage_umount_object(storage_object_from_path(mount_path));
}