From 94b357c2b31be20b51784dc6f2ae837d58777cbd Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 5 Nov 1999 21:10:54 +0000 Subject: Unmount was failing as a side-effect of splitting the rmnod handler and not handling every case properly. --- cpukit/libfs/src/imfs/imfs_fsunmount.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'cpukit/libfs/src/imfs/imfs_fsunmount.c') diff --git a/cpukit/libfs/src/imfs/imfs_fsunmount.c b/cpukit/libfs/src/imfs/imfs_fsunmount.c index 7a091c6fa3..9ca5f4c9fe 100644 --- a/cpukit/libfs/src/imfs/imfs_fsunmount.c +++ b/cpukit/libfs/src/imfs/imfs_fsunmount.c @@ -42,6 +42,11 @@ #define jnode_get_first_child( jnode ) \ ((IMFS_jnode_t *)( Chain_Head( jnode_get_control( jnode ) )->next)) +/* XXX should be in a more public place */ + +extern int IMFS_Set_handlers( + rtems_filesystem_location_info_t *loc +); int IMFS_fsunmount( rtems_filesystem_mount_table_entry_t *temp_mt_entry @@ -59,7 +64,6 @@ int IMFS_fsunmount( jnode = (IMFS_jnode_t *)temp_mt_entry->mt_fs_root.node_access; loc = temp_mt_entry->mt_fs_root; - /* * Set this to null to indicate that it is being unmounted. @@ -70,6 +74,7 @@ int IMFS_fsunmount( do { next = jnode->Parent; loc.node_access = (void *)jnode; + IMFS_Set_handlers( &loc ); if ( jnode->type != IMFS_DIRECTORY ) { result = IMFS_unlink( &loc ); -- cgit v1.2.3