Just-in-time mounts when following symlinks
Albert Chin-A-Young
china at pprd.abbott.com
Thu Jun 4 20:54:28 GMT 1998
On Thu, 4 Jun 1998, Luke Kenneth Casson Leighton wrote:
>[cross-posted to samba-technical, samba-ntdom and samba].
>
>On Thu, 4 Jun 1998, Albert Chin-A-Young wrote:
>
>> [description removed]
>
>my suggestion to solve this was to have a function that either calls lstat
>or stat with a boolean switch. then, identify _all_ SMB calls that make a
>stat or lstat calls. then, subdivide them into calls that need to have
>the real file/directory time/date and those that could get away with the
>file/directory link time/date. this _may_ require an smb.conf file list
>option.
>
>at a first guess, you could do lstat on directories, and stat on files.
>
>
>my second guess is simply that stat is being accidentally called (which
>triggers the automount lookup) in places where lstat should only be
>called (under the control of lp_symlinks() whatever).
>
>opinions / comments welcomed.
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).
>luke
--
albert chin (china at pprd.abbott.com)
More information about the samba-technical
mailing list