Sergei Steshenko wrote: > --- On Sat, 12/5/09, Jim Meyering <[email protected]> wrote: >> The "?" makes me think /file_exchange is a dangling >> symlink. >> If that's the case, selecting only directories may be >> enough: >> >> diff --git a/tests/ls/readdir-mountpoint-inode >> b/tests/ls/readdir-mountpoint-inode >> index c021473..de563d7 100755 >> --- a/tests/ls/readdir-mountpoint-inode >> +++ b/tests/ls/readdir-mountpoint-inode >> @@ -65,6 +65,8 @@ inode_via_readdir() >> for dir in $mount_points; do >> readdir_inode=$(inode_via_readdir $dir) >> stat_inode=$(env stat --format=%i $dir) >> + # skip non-directories (i.e., dangling symlinks) >> + test -d $dir || continue
Note the symlinks are not dereferenced by ls or stat below anyway. Also I quickly tried to mount on a symlink but it was canonicalized at some stage. >> If that doesn't do it, then we can skip $dir when >> stat_inode is 0. That would work but as Sergei confirms below, the stat is succeeding and returning 0 for st_ino. Perhaps we should change ls to also print the 0 if the stat succeeds? That means we can distinguish between a failure (?) and the OS returning 0 as a "valid" number. Also, even if we do that, in the test we would need to skip the case where `stat` returns nothing on error. >> Sergei, what do these print for you? >> >> env ls -li / |grep file_exchange >> env ls -lidL /file_exchange >> > > Here is the requested screen output. > > " > au...@linux-ctgu:~> env ls -li / | grep file_exchange > ? drwxr-xr-x 1 auser users 4096 2009-12-04 06:29 file_exchange > au...@linux-ctgu:~> env ls -lidL /file_exchange > ? drwxr-xr-x 1 auser users 4096 2009-12-04 06:29 /file_exchange > au...@linux-ctgu:~> > ". > > '/file_exchange' is what VirtualBox developers call shared folder. > > Both host and guest OSes are Linux (SUSE-11.1). Also, in the guest I'm > using what VirtualBox developers call "host additions". And 'file_exchange' > is both device and share name. > > Here's what my '/etc/fstab' file in the guest OS contains: > > 8 file_exchange /file_exchange vboxsf uid=1000,gid=100 cheers, Pádraig.
