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> 2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS. * 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) && if ( node->type == IMFS_DIRECTORY ) {
(pathloc->node_access != rtems_filesystem_root.node_access) ) { if ( node->info.directory.mt_fs != NULL ) {
newloc = pathloc->mt_entry->mt_point_node; newloc = node->info.directory.mt_fs->mt_fs_root;
*pathloc = newloc; *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. * Verify we have the correct permissions for this node.
*/ */
@@ -628,12 +637,3 @@ int IMFS_eval_path(
return result; 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> 2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS. * 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) && if ( node->type == IMFS_DIRECTORY ) {
(pathloc->node_access != rtems_filesystem_root.node_access) ) { if ( node->info.directory.mt_fs != NULL ) {
newloc = pathloc->mt_entry->mt_point_node; newloc = node->info.directory.mt_fs->mt_fs_root;
*pathloc = newloc; *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. * Verify we have the correct permissions for this node.
*/ */
@@ -628,12 +637,3 @@ int IMFS_eval_path(
return result; 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> 2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS. * 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) && if ( node->type == IMFS_DIRECTORY ) {
(pathloc->node_access != rtems_filesystem_root.node_access) ) { if ( node->info.directory.mt_fs != NULL ) {
newloc = pathloc->mt_entry->mt_point_node; newloc = node->info.directory.mt_fs->mt_fs_root;
*pathloc = newloc; *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. * Verify we have the correct permissions for this node.
*/ */
@@ -628,12 +637,3 @@ int IMFS_eval_path(
return result; return result;
} }