diff options
| author | Dan Halbert <halbert@halwitz.org> | 2018-06-21 09:24:40 -0400 |
|---|---|---|
| committer | Dan Halbert <halbert@halwitz.org> | 2018-06-21 09:24:40 -0400 |
| commit | dbf1a2f7d55c8fc80df699c3a5792a29c46ea3e2 (patch) | |
| tree | 5eaf5e0b03f237f8b060f04488fd960ae87911c5 /shared-module/storage/__init__.c | |
| parent | de4cd1ee739ec93acc7a61252462e8a2f117a259 (diff) | |
allow '/' to be mounted on '/' from Python code
Diffstat (limited to 'shared-module/storage/__init__.c')
| -rw-r--r-- | shared-module/storage/__init__.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/shared-module/storage/__init__.c b/shared-module/storage/__init__.c index cc10ebd5a..edce286b1 100644 --- a/shared-module/storage/__init__.c +++ b/shared-module/storage/__init__.c @@ -65,12 +65,15 @@ void common_hal_storage_mount(mp_obj_t vfs_obj, const char* mount_path, bool rea args[1] = mp_const_false; // Don't make the file system automatically when mounting. // Check that there's no file or directory with the same name as the mount point. - nlr_buf_t nlr; - if (nlr_push(&nlr) == 0) { - common_hal_os_stat(mount_path); - nlr_pop(); - // Something with the same name exists. - mp_raise_OSError(MP_EEXIST); + // But it's ok to mount '/' in any case. + if (strcmp(vfs->str, "/") != 0) { + nlr_buf_t nlr; + if (nlr_push(&nlr) == 0) { + common_hal_os_stat(mount_path); + nlr_pop(); + // Something with the same name exists. + mp_raise_OSError(MP_EEXIST); + } } // check that the destination mount point is unused |
