diff options
Diffstat (limited to 'cpukit/libfs/src')
-rw-r--r-- | cpukit/libfs/src/dosfs/msdos_init.c | 5 | ||||
-rw-r--r-- | cpukit/libfs/src/imfs/ioman.c | 21 |
2 files changed, 5 insertions, 21 deletions
diff --git a/cpukit/libfs/src/dosfs/msdos_init.c b/cpukit/libfs/src/dosfs/msdos_init.c index 3ea6f104e8..2874172484 100644 --- a/cpukit/libfs/src/dosfs/msdos_init.c +++ b/cpukit/libfs/src/dosfs/msdos_init.c @@ -103,10 +103,12 @@ int rtems_dosfs_initialize( int rc = 0; const rtems_dosfs_mount_options *mount_options = data; rtems_dosfs_convert_control *converter; + bool converter_created = false; if (mount_options == NULL || mount_options->converter == NULL) { converter = rtems_dosfs_create_default_converter(); + converter_created = true; } else { converter = mount_options->converter; } @@ -117,6 +119,9 @@ int rtems_dosfs_initialize( &msdos_file_handlers, &msdos_dir_handlers, converter); + if (rc != 0 && converter_created) { + (*converter->handler->destroy)(converter); + } } else { errno = ENOMEM; rc = -1; diff --git a/cpukit/libfs/src/imfs/ioman.c b/cpukit/libfs/src/imfs/ioman.c index 59b93e400c..55fb1728b5 100644 --- a/cpukit/libfs/src/imfs/ioman.c +++ b/cpukit/libfs/src/imfs/ioman.c @@ -45,24 +45,3 @@ rtems_status_code rtems_io_register_name( return RTEMS_SUCCESSFUL; } - -rtems_status_code rtems_io_lookup_name( - const char *name, - rtems_driver_name_t *device_info -) -{ - rtems_status_code sc = RTEMS_SUCCESSFUL; - struct stat st; - int rv = stat( name, &st ); - - if ( rv == 0 && S_ISCHR( st.st_mode ) ) { - device_info->device_name = name; - device_info->device_name_length = strlen( name ); - device_info->major = rtems_filesystem_dev_major_t( st.st_rdev ); - device_info->minor = rtems_filesystem_dev_minor_t( st.st_rdev ); - } else { - sc = RTEMS_UNSATISFIED; - } - - return sc; -} |