Just-in-time Symlinks

Michael H Buselli busellim at pprd.abbott.com
Fri Jun 15 18:31:28 GMT 2001


I was wondering if any changes were made to the Samba source three years
ago when the just-in-time symlinks discussion was on this list.  I
looked at the code and the Samba documentation and I cannot see any

This is part of one of the emails in that discussion.

On June 4, 1998 Albert Chin-A-Young wrote:
> Ok, following discussions with Paul Epp <epp at clrtech.bc.ca>, there are
> a total of three ways to solve this problem:
>         1. Add the following options to smb.conf:
>                 jit symlinks = yes/no
>                 file symlinks = [pointer to file with REs]
>                 directory symlinks = [pointer to file with REs]
>            Then wrap calls to stat() accordingly so that symbolic
>            links in a particular directory are treated as files
>            or directories and force lstat() on them. The
>            'jit symlinks' stands for 'just-in-time symlinks' and
>            would enable this feature. This would be a general-
>            purpose mechanism for anyone with trees of symbolic
>            links.
>         2. Move Samba to a Solaris 2.6 platform running the Solaris
>            automounter. Due to the new browsability feature that
>            exists in this automounter, Samba can walk the list of
>            automounter keys without causing a mount storm because
>            the automounter lies when stat() is called (so nothing
>            is mounted). An added benefit to this is that we
>            can point shares directly at the automounter namespace
>            and get rid of our utility to create a tree of links
>            from the automounter maps.
>         3. Modify the Berkeley AMD automounter to lie about stat()
>            as the Solaris 2.6 automounter does.
> What do you all think? Paul is already coding up solution #1 and
> will be done shortly. I have tested solution #2 and it works just
> fine (though we're running AMD here).

I have the result of the code modifications by Paul Ebb to implement #1
above, but those modifications were done to Samba version 1.9.18p10 and
we would rather move on to 2.2.x and future releases.

To re-iterate the problem, we have the Berkeley AMD automounter mounting
NFS shares that we then want to re-export with Samba.  We have the
"disappearing mount points" problem that is all too well known when
automounters are involved.  The just-in-time code wraps calls to
sys_stat() within Samba and returns fake information instead of calling
stat() if we are working on a symbolic link to prevent mount storms
while programs peruse the browsing directories.

Jeremy Allison was interested in the code but had concerns about
performance due to the extra overhead before making a stat() call.
Nevertheless, we would still like to see some method of supporting our
environment incorporated into the base Samba code.  A compile-time
option is my suggestion, and this way the extra overhead would not be
present to those that don't absolutely need it.

If anyone knows how to solve our problem without code modifications to
the current Samba code, please let me know so we can avoid anything
unnecessary.  If you want to read up on the discussion from three years
ago, search for "just-in-time" on the samba-technical archives at
http://marc.theaimsgroup.com/.  Thank you.

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