VFS

Tim Potter Tim.Potter at anu.edu.au
Wed Mar 17 04:57:10 GMT 1999


> Oooo - this looks really good Tim !
> 
> I am CC:ing this to John Sygulla at SGI who wants
> to work on it here. Can you two co-ordinate to get
> the code sent to him (I'm working on oplock hell
> at the moment :-( ).

Well I can tar it all up but if there are multiple people working on
the code it would be nice for it to be under CVS.

> The only change I though might be nice was to remove
> the 'struct connection_struct *conn' first arguments
> to all the functions, and instead add this to the

There was a really good reason for doing this [FX: thinking].  It had
something to do with not knowing which share you were opening a file
on.  If you create a whole bunch of virtual shares that map to, for
example tapes, it is impossible to know which share you are referring
to when doing any VFS ops that refer to a file or path name.  So, a
connection struct is needed to pass this information to all the VFS
functions.  

The only other solution I can think if is a global variable - ick.

> init() function as an argument. We should probably
> add a 'logon' and 'logoff' function also so the
> shared library can associate some internal state
> with the current UNIX username/uid_t pair.

Good idea.

> That way we can load a different shared library per
> share, and pass the share connection structure to
> it at init time. The other functions then become
> much closer to their POSIX equivalents, making it
> easier for 3rd party vendors to use them.

I agree that getting rid of the connection structs is a nice idea, but
I don't want to throw away the idea of being able to have the same
VFS code running multiple shares.

Another option is to implement all the virtual shares as directories.
I looked at this for my tape robot VFS backend but discarded it -
can't remember why though.  )-:


Tim.

> What do you think ?
> 
> Jeremy.
> 
> -- 
> --------------------------------------------------------
> Buying an operating system without source is like buying
> a self-assembly Space Shuttle with no instructions.
> --------------------------------------------------------

-- 
Tim Potter, System Admin/Programmer, Head Bee Guy
Advanced Computational Systems CRC, RSISE Bldg Australian National University,
Canberra 0200, AUSTRALIA Ph: +61 2 62798813 Fax: +61 2 62798602


More information about the samba-technical mailing list