This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: cyg_mtab_lookup()
- From: Nick Garnett <nickg at calivar dot demon dot co dot uk>
- To: Roland Caßebohm <roland dot cassebohm at visionsystems dot de>
- Cc: ecos-discuss at sources dot redhat dot com
- Date: 24 Jun 2002 21:09:29 +0100
- Subject: Re: [ECOS] cyg_mtab_lookup()
- References: <200206240919.g5O9JhO26615@hhlx01.visionsystems.de>
Roland Caßebohm <roland.cassebohm@visionsystems.de> writes:
> Hi,
>
> there is a problem with cyg_mtab_lookup(). If name has not a leading '/' mte
> will not be initialized and LOCK_FS() will fail.
>
> In cyg_mtab_lookup():
>
> // Unrooted file names go straight to current dir
> if( **name != '/' ) return 0;
>
>
> In open():
>
> ret = cyg_mtab_lookup( &dir, &name, &mte );
>
> if( 0 != ret )
> {
> cyg_fd_free(fd);
> cyg_file_free(file);
> FILEIO_RETURN(ENOENT);
> }
>
> LOCK_FS( mte );
>
mte is initialized to the mte for the current directory at the start
of open(). If the name does not start with a '/' then the values are
left alone and we do all further work relative to the current
directory. This is exactly what we want to happen.
The current directory is set on system initialization, or when we
mount the first file system. Until there are real filesystems, with
real directories, only absolute pathnames can be used.
--
Nick Garnett - eCos Kernel Architect
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss