[OpenAFS] Linux client and find command in AFS
Jonathan E Halter
jehalter@uncc.edu
Tue, 05 Apr 2005 13:44:55 -0400
This is on: RHEL WS3, kernel 2.4.21-27.EL, openafs 1.2.13
I'm wondering if anyone else can recreate this problem I've come across
with using the find command in AFS. I don't know if its a problem with
the RHEL's find command, the OpenAFS client, or a combination of the 2.
I do NOT have this problem on my Sun workstations (1.2.11 client),
running the same find command in the same directory. I searched through
the bugs on openafs.org, and couldn't find anything relevant.
On my Linux workstation, 'find' will not traverse down into any volume
mount points, if there is not at least 1 "real" directory on the same
level where the volumes are mounted. I can have multiple mount points,
and find still will not traverse down into those volumes.
In its most simple form:
# in a directory, in AFS
-bash-2.05b$ pwd
/afs/uncc.edu/usr/b/trng02/tmp
# ls -l shows only 1 item
-bash-2.05b$ ls -l
total 2
drwxrwxrwx 5 root root 2048 Dec 14 2000 xplay
# 'xplay' is a mount point
-bash-2.05b$ fs lsm xplay
'xplay' is a mount point for volume '#coe.opt.gnu.xplay10'
# find will not traverse down into the xplay volume
-bash-2.05b$ find . -print
.
./xplay
# but if I create some dummy directory
-bash-2.05b$ mkdir foo
# find now decides to traverse down into the volume
-bash-2.05b$ find . -print
.
./xplay
./xplay/man
./xplay/man/man1
./xplay/man/man1/xplay.1
./xplay/bin
./xplay/bin/xplay
./xplay/depot.conf
./xplay/src
./xplay/src/ChangeLog
./xplay/src/Makefile
./xplay/src/audio.h
./xplay/src/beammeup.au
./xplay/src/convert.c
./xplay/src/convert.h
./xplay/src/file.c
./xplay/src/file.h
./xplay/src/grok-aiff.c
./xplay/src/grok-au.c
./xplay/src/grok-wav.c
./xplay/src/grok.c
./xplay/src/gui.c
./xplay/src/make.sun
./xplay/src/play.h
./xplay/src/play.oss.c
./xplay/src/play.sun.c
./xplay/src/ulaw.c
./xplay/src/xplay.spec
./xplay/depot.image
./foo
-----
Where this really becomes a problem is, if I wanted to recurse through a
bunch of user volumes to look for something, I can't because find
refuses to traverse any deeper than the current directory:
# i am admin for this demo
-bash-2.05b$ tokens
Tokens held by the Cache Manager:
User's (AFS ID 1) tokens for afs@uncc.edu [Expires Apr 11 13:43]
--End of list--
# in a directory that contains only user mount points
-bash-2.05b$ pwd
/afs/uncc.edu/usr/a
# simple find command
-bash-2.05b$ find . -print
.
./bvbutter
./ampressw
./bcthomps
./wdfourqu
./bcbuddin
./bgmorgan
./aapancho
.
. (...cut to save space)
.
./trng01
./trng28
./trng50
./slcarter
./crhwang
./wckees
./tamaxian
./dnussman
And that is where it stops. If anyone can recreate this issue, please
let me know, and thanks in advance.
Thanks,
Jonathan Halter