2000-11-17 Jennifer Averret <jennifer@OARcorp.com>

* src/imfs/imfs_eval.c: Always return imaginary node at mount points.
This commit is contained in:
Jennifer Averett
2000-11-17 18:46:03 +00:00
parent 4b0d1ab39b
commit 13e47e2e6b
6 changed files with 60 additions and 48 deletions

View File

@@ -1,3 +1,7 @@
2000-11-17 Jennifer Averret <jennifer@OARcorp.com>
* src/imfs/imfs_eval.c: Always return imaginary node at mount points.
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.

View File

@@ -608,17 +608,26 @@ int IMFS_eval_path(
}
/*
* Only return root node if this is the base file system.
* Always return the root node.
*
* If we are at a node that is a mount point. Set loc to the
* new fs root node and let let the mounted filesystem set the handlers.
*
* NOTE: The behavior of stat() on a mount point appears to be questionable.
*/
if ((pathloc->node_access == pathloc->mt_entry->mt_fs_root.node_access) &&
(pathloc->node_access != rtems_filesystem_root.node_access) ) {
newloc = pathloc->mt_entry->mt_point_node;
*pathloc = newloc;
if ( node->type == IMFS_DIRECTORY ) {
if ( node->info.directory.mt_fs != NULL ) {
newloc = node->info.directory.mt_fs->mt_fs_root;
*pathloc = newloc;
return (*pathloc->ops->evalpath_h)( &pathname[i-len], flags, pathloc );
} else {
result = IMFS_Set_handlers( pathloc );
}
} else {
result = IMFS_Set_handlers( pathloc );
}
result = IMFS_Set_handlers( pathloc );
/*
* Verify we have the correct permissions for this node.
*/
@@ -628,12 +637,3 @@ int IMFS_eval_path(
return result;
}

View File

@@ -1,3 +1,7 @@
2000-11-17 Jennifer Averret <jennifer@OARcorp.com>
* src/imfs/imfs_eval.c: Always return imaginary node at mount points.
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.

View File

@@ -608,17 +608,26 @@ int IMFS_eval_path(
}
/*
* Only return root node if this is the base file system.
* Always return the root node.
*
* If we are at a node that is a mount point. Set loc to the
* new fs root node and let let the mounted filesystem set the handlers.
*
* NOTE: The behavior of stat() on a mount point appears to be questionable.
*/
if ((pathloc->node_access == pathloc->mt_entry->mt_fs_root.node_access) &&
(pathloc->node_access != rtems_filesystem_root.node_access) ) {
newloc = pathloc->mt_entry->mt_point_node;
*pathloc = newloc;
if ( node->type == IMFS_DIRECTORY ) {
if ( node->info.directory.mt_fs != NULL ) {
newloc = node->info.directory.mt_fs->mt_fs_root;
*pathloc = newloc;
return (*pathloc->ops->evalpath_h)( &pathname[i-len], flags, pathloc );
} else {
result = IMFS_Set_handlers( pathloc );
}
} else {
result = IMFS_Set_handlers( pathloc );
}
result = IMFS_Set_handlers( pathloc );
/*
* Verify we have the correct permissions for this node.
*/
@@ -628,12 +637,3 @@ int IMFS_eval_path(
return result;
}