Regarding Filesystem Handler Table Functions

Chris Johns chrisj at rtems.org
Thu May 13 21:26:30 UTC 2010


On 13/05/10 11:53 PM, Bharath Suri wrote:
>
> I am right now facing some difficulty wrt Filesystem Handler functions.
>
> Following is the setup.
>
> /imfs exists, /tmp/test exists
>
> A filesystem is mounted at /imfs, with the
> rtems_filesystem_operations_table argument mostly same as IMFS_ops,
> except that the evalformake_h = NULL and rename_h = NULL.
>
> /imfs/test is created.
>
> When node info ( rtems_filesystem_location_info_t) of /tmp/test is
> seen, mt_entry is that of the root file system and ops is the IMFS_ops
> (OK)
> When node info ( rtems_filesystem_location_info_t) of /imfs/test is
> seen, mt_entry is that of the new file system mounted, but ops is
> IMFS_ops, instead of the modified one.
>
> I am assuming that the ops should be the modified one, which was
> provided during the mount.
>

It should be if the mount is successful. Is it ? Are you checking for 
errors ?

> Mount operation was performed in the below manner:
>
> rtems_filesystem_operations_table  IMFS_ops_no_evalformake = IMFS_ops;
> IMFS_ops_no_evalformake.evalformake_h = NULL;
> mount(&mt_entry,&IMFS_ops_no_evalformake,
> RTEMS_FILESYSTEM_READ_WRITE, NULL, "/imfs");
>
> Please let me know if the assumption is wrong or about any mistakes in
> the procedure I am following.

I think you are being detected in 'Is_node_fs_root' as being a root fs 
and attempting to mount it twice. Check the mount code in libcsupport.

Chris



More information about the users mailing list