wje@redwood.mips.com (William J. Earl) (06/27/91)
In article <KMK.91Jun3133627@lehtori.cc.tut.fi>, kmk@cc (Kai 'Kaizzu' Kein{nen) writes: > > We ran in a funny situation here today when we tried to issue a > mount-command from a directory which no longer exists: > > (lehtori is a RC6280 running RISC/os 4.51, thomas is VAX 11/780 running > Ultrix 4.1.) > > lehtori:/mnt/hide 343 # pwd > ..: No such file or directory > lehtori:/mnt/hide 344 # mkdir /mnt/disk > lehtori:/mnt/hide 345 # mount thomas:/mnt/ra3c /mnt/disk > mount: No such file or directory > lehtori:/mnt/hide 346 # cd /mnt > lehtori:/mnt 347 # mount thomas:/mnt/ra3c /mnt/disk > lehtori:/mnt 348 # mkdir hide > lehtori:/mnt 349 # cd hide > lehtori:/mnt/hide 350 # ( cd / ; rmdir /mnt/hide ) > lehtori:/mnt/hide 351 # mkdir /mnt/real > lehtori:/mnt/hide 352 # ln -s /mnt/real /mnt/link > lehtori:/mnt/hide 353 # mount thomas:/mnt/ra3c /mnt/link > mount: /mnt/: No such file or directory > lehtori:/mnt/hide 354 # mount thomas:/mnt/ra3c /mnt/real > mount: No such file or directory > lehtori:/mnt/hide 355 # > > This works fine at least on SunOS 4.1.1 and Ultrix 4.1. So the > academic question is: What does mount do with current directory? Why > does it give a funny error message when trying to do a mount via a > symbolic link when sitting in a directory which does not exist? mount attempts to remove all symbolic links and references to "." and ".." in the path to the mount point, to avoid ambiguity in /etc/mtab. In doing so, it uses realpath(3-bsd), which in turn tries to do getwd(), which in turn tries to open "..", which fails. realpath() could be a bit smarter, and skip the getwd() if there are in fact no "." or ".." items in the path. This is, however, not a particularly interesting failure mode, since the workaround (cd to some directory which is accessible) is simple. -- William J. Earl wje@mips.com MIPS Computer Systems 408-524-8172 930 Arques Avenue, M/S 1-03 FAX 408-524-8401 Sunnyvale, CA 94088-3650