VFS modules proposed design - WAS Re: Moving 8.3 filenames into VFS - WAS Re: meeting with SUGJ

Michael H Buselli busellim at pprd.abbott.com
Wed Aug 1 15:22:31 GMT 2001

Michael Gerdts said:

> One other thing that may be useful is stackable VFS modules.  Suppose I had
> two VFS modules: one that did auditing and one that did virus checking.
> Under the current model, I would have to decide which one I wanted (or
> write a new one that incorporated both feature sets).  If they were
> stackable, I could have the functionality of both with no real troubles.

I thought that this would be a good idea as well.  From the perspective
of being within the VFS module, could it be as simple as replacing the
function pointers in default_vfs_ops with function pointers to the VFS
module in the next layer down?

Right now default_vfs_ops is an external global variable.  It would
probably be better to pass a (const struct vfs_ops *) into the
vfs_init() function within the VFS module and expect the coder of the
VFS module to save the pointer to that struct vfs_ops in a file-local
global variable.  At initialization the different vfs_init() fuctions in
each VFS module would be called with the lowest VFS module getting the
true default_vfs_ops structure, the second lowest getting the return
value of the first after it was modified appropriately to fill in the
NULLs, and so on.

In any case, I think that any stackable VFS solution would require some
change or another to the SMB_VFS_INTERFACE_VERSION, and thus we probably
can't have it in a production level release until Samba 2.4.0.

I'd be willing to code it if the Samba core believes it is feasible, but
not this week. :)

Michael H. Buselli
Senior Network Systems Specialist            Abbott Laboratories
Email: busellim at pprd.abbott.com              D472/AP9A-L20
Phone: 847-935-4624                          100 Abbott Park Road
Fax: 847-935-0142                            Abbott Park, IL  60064-3500

More information about the samba-technical mailing list