(Illustration by Gaich Muramatsu)
Jan Harkes <jaharkes_at_cs.cmu.edu> ,in message <20010216104403.B5300_at_cs.cmu.edu>, wrote: > On Fri, Feb 16, 2001 at 10:24:02AM -0500, Robert Forsman wrote: > > Greg Troxel <gdt_at_fnord.ir.bbn.com> ,in message <rmi1ysykdw7.fsf_at_fnord.ir.bb >> n.co > > m>, wrote: > > > > > There is a mild argument for avoiding mounts in /. Long ago, I used > > > systems with fs foo on machine bar in /nfs/bar/foo. This had the > > > advantage that 'ls -l /' didn't hang the system in the case of a dead > > > server. With coda, this should be temporary and only last 30 seconds > > > or so when it goes down, so this isn't so serious. > > > > I'm sure that nobody will mind waiting 30 seconds for "pwd" to return. > > 'pwd' doesn't try to get the attributes of /coda, except when it is run > from within /coda and then you have the 30 second timeout anyways. Wiggy. pwd on linux works nothing like the old days. Back in the old days pwd did its job by statting "../*" to get the inode and see if "../whatever" had the same inode as ".". It was then able to determine the name of "." relative to ".." . You then repeat the process all the way up the tree till you find "/" . Under that scheme you would run the risk of statting /coda. However, according to strace, the pwd program does nothing of the sort. connect(134520888, ptrace: umoven: Input/output error {...}, 716889280) = 23 fstat(1, {st_mode=0, st_size=0, ...}) = 0 mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aabf000 write(1, "/incanta/homes19/thoth\n", 23/incanta/homes19/thoth ) = 23 munmap(0x2aabf000, 4096) = 0 I have no idea what strace is interpreting as a connect call, but I suspect that's what gets the thingy that mmap subsequently plays with. I bet it's doing a readlink on the /proc/self/cwd symlink -- Bob Forsman thoth_at_gainesville.fl.us http://www.gainesville.fl.us/~thoth/Received on 2001-02-16 11:09:25