Just-in-time Symlinks
David Collier-Brown
davecb at canada.sun.com
Mon Jun 18 14:02:59 GMT 2001
Michael H Buselli wrote:
> 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.
Perhaps we're trying to deal with a symptom rather than
the problem...
If one uses automounter to import file trees which
one exports with Samba, there is a well-known problem
with the *%$#$%!@ thing timing out and unmounting the
file trees. Samba users see this as an unexpectedly
empty directory when browsing.
At the same time, several automounters contain optimizations
which allow them to stat the files in automounted directories
without actually making the mounts, which allows programs
calling stat (like ls -l) to be run on automounted directories
without unexpected side-effects.
Samba should be able to
1) list a directory without causing a mount storm
2) be able to see the contents of an automounted
directory
both in terms of the operations that a pc client will request.
So, except for the last caveat, Samba needs to act like
a perfectly ordinary Unix program. I'm actually surprised
to find it doesn't!
As I once asked "what the Microsoft client requires
so that we might debate what to do instead of
how to do it?"
Can anyone comment on the windows side?
I have a 2.2.x Samba on my workstation and a share pointed
at /net, the local automounted NFS tree. using **smbsh**,
"ls /net" works normally:
---
smbsh$ ls /net
RadioFreeEthernet dhcp-mrk03-8-165 merlin sco
ace dhcp-mrk03-8-166 millenium scooter
[rest snipped]
---
"ls -l /net" triggers the OS's underlying stat simulation,
so that most directories only show the default permissions
and change times (/net/elmo), and only actually mounted
directories show the real information (/net/elsbeth)
---
mbsh$ ls -ld /net/e*
dr-xr-xr-x 1 root root 1 Jun 18 09:56 /net/elmo
drwxr-xr-x 32 root root 1024 Jun 12 11:08 /net/elsbeth
dr-xr-xr-x 1 root root 1 Jun 18 09:57 /net/ep
dr-xr-xr-x 1 root root 1 Jun 18 09:57 /net/excalibur
---
So **almost** everything works, it's only PC clients
that get messed up. Who can help us with that???
> 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.
I suspect, without any evidence (;-)), that Samba needs
some small tweak or two to produce the PC's desired
result.
--dave
--
David Collier-Brown, | Always do right. This will gratify
Performance & Engineering Team | some people and astonish the rest.
Americas Customer Engineering | -- Mark Twain
(905) 415-2849 | davecb at canada.sun.com
More information about the samba-technical
mailing list