barmar@think.COM (Barry Margolin) (07/27/88)
At our site we have Symbolics Lisp Machines running an NFS server implemented by International Lisp Associates. We also have Unix machines running MtXinu 4.3bsd, SunOS 3.5 and 3.2, and Ultrix 2.0 and 2.4. Everything works pretty well, except when the Ultrix machines try to list Lisp Machine directories; in that case, Ultrix always reports that the directory is completely empty. If occam:> is mounted on /lispm/occam on Ultrix, when I try to list /lispm/occam/barmar (my directory) the following RPC transactions occur: GETATTR on the LispM root, LOOKUP for "barmar", and GETATTR on the file handle returned by the LOOKUP. But it never goes into a READDIR loop, the way SunOS and MtXinu do. (ILA's NFS includes an excellent tracing feature, that displays every RPC datagram received or sent.) The fattr returned by the last GETATTR looks like: type=2, mode=40777, nlink=1, uid=1201 (my uid), gid=10 (my gid), size=4544, blocksize=4544, rdev=0, blocks=1, fsid=1024, fileid=1377896943, atime/mtime/ctime=<now> (directories always show up as newly modified, because we once thought that Unix was trying to cache things). I tried making blocks=2 (since Unix directories that only contain "." and ".." take up 2 blocks), nlink=2 (since Unix directories always have at least two links, "." and "../name"), and rdev=1 (who knows why), but none of these things helped. Does anyone have any ideas why Ultrix would decide that the directory is empty just from the above attributes? Barry Margolin Thinking Machines Corp. barmar@think.com {uunet,harvard}!think!barmar