From owner-freebsd-bugs Tue Apr 7 14:21:04 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id OAA18711 for freebsd-bugs-outgoing; Tue, 7 Apr 1998 14:21:04 -0700 (PDT) (envelope-from owner-freebsd-bugs@FreeBSD.ORG) Received: from critter.freebsd.dk (critter.freebsd.dk [195.8.129.14]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id OAA18703 for ; Tue, 7 Apr 1998 14:20:59 -0700 (PDT) (envelope-from phk@critter.freebsd.dk) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.8.7/8.8.5) with ESMTP id WAA00275; Tue, 7 Apr 1998 22:48:31 +0200 (CEST) To: Mika Nystrom cc: jkh@time.cdrom.com, freebsd-bugs@FreeBSD.ORG Subject: Re: kern/6189 In-reply-to: Your message of "Mon, 06 Apr 1998 23:51:38 PDT." <199804070651.XAA27474@varese.cs.caltech.edu> Date: Tue, 07 Apr 1998 22:48:30 +0200 Message-ID: <273.891982110@critter.freebsd.dk> From: Poul-Henning Kamp Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org In message <199804070651.XAA27474@varese.cs.caltech.edu>, Mika Nystrom writes: >I'd love to see this reply too.. :) >What I am seeing now is that for six seconds (as far as I can tell >no more nor less) after an automounted filesystem has been umounted, >the kernel does not realize that it is in fact possible to try again >through amd, but instead returns a "file not found" error The fundamental issue here is that UNIX in general belives that nobody else mucks about with the filesystems. If we have the vnode in the kernel, the file is still there. The trouble is that amd "optimizes" things by mounting the filesystem and "faking" a symlink. If amd acted like a proxy for this, ie, the amd'ed filesystem never got mounted directly, you would not have the problem. The timeout for amd to unmount is normally orders of magnitude larger than 6 seconds, which bypasses this problem. You must be doing something weird here since you hit this one. Maybe because your checking the links existence keeps refreshing it. If you unmount by hand, you get what you can expect. Amd bases its unmounting on lack of activity, if you pull the rug by hand, weird things are to be expected. There are no easy solutions which doesn't cost dearly in performance. There are some very hard solutions which are only expensive in performance. You could string all resolved symlinks in the namecache on a destination filesystem list and yank them all at umount time. I think that would cost another 8 bytes in the vnode, which is rather much to pay for this. -- Poul-Henning Kamp FreeBSD coreteam member phk@FreeBSD.ORG "Real hackers run -current on their laptop." "Drink MONO-tonic, it goes down but it will NEVER come back up!" To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message