[OpenAFS-devel] getcwd() on Linux 2.6.18+OpenAFS 1.4.2 bugs/errors.

Michael Loftis mloftis@wgops.com
Thu, 08 Nov 2007 15:36:21 -0700


updog:~# cd /afs/mw/u/m/mloftis/var
updog:/afs/mw/u/m/mloftis/var# /bin/pwd
/afs/modwest.com/u/j/jslife/var

That in and of itself is weird bug enough.  You can replicate this one by 
making two or three mounts then stating the first, and using getcwd 
(/bin/pwd, note that bas pwd builtin uses PWD env var and/or internal state 
and so is NOT affected in the same way!!!)  var *is* the same volume 
mounted in both places....  worse....

updog:~# chroot /afs/mw/u/j/jslife/
updog:/# cd /var
updog:/var# /bin/pwd
/var

OK...but...

updog:~# chroot /afs/mw/u/m/mloftis/
updog:/# cd /var
updog:/var# /bin/pwd
/afs/modwest.com/u/j/jslife/var

*INSIDE* the chroot we're seeing a path that's outside.  I think AFS is 
doing something really wrong WRT dentry or inode caches.  Stock Debian 
1.4.2-6 client/kernel, fileserver/etc all on same machine.  /vicepa is on 
reiserfs but that shouldn't make any difference, this seems to be all 
client side issues.

My guess is it has something to do with the "thou shalt not make hardlinks 
to directories" directives but...my foo is a little weak to resolve this 
one by myself.

--
"Genius might be described as a supreme capacity for getting its possessors
into trouble of all kinds."
-- Samuel Butler