Date: Thu, 24 Nov 2005 12:38:40 +0100 From: Csaba Henk <csaba-ml@creo.hu> To: freebsd-hackers@freebsd.org Subject: misteries of find(1) Message-ID: <20051124113840.GK2911@beastie.creo.hu>
next in thread | raw e-mail | index | archive | help
Hi! With fuse based filesystems I experienced find(1) giving up after running for a while, bursting out in a series of "File does not exist" complaints. (On the contrary, gfind just ran peacefully.) Why so? Well, fuse is a synthetic filesystem, where files themselves are subject to on demand creation / garbage collection (ie., not on the vnode level, but on the "backing storage" level, which role is played by the userspace filesystem daemon). As the ENOENT complaints came when file gc hit in, I conjectured that find somehow caches name-inode mappings (which becomes invalid if a file gets gc'd: after that, if it's asked for, it will reappear with a new inode number). I didn't look into find or libc source code, but that's what I think. Now with my CURRENT system (of 13th Nov) I don't see this happening anymore, BSD find also runs fine. I wonder what has changed... find itself doesn't seem to have any essential commits recently. Does anyone has an idea? Regards, Csaba
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051124113840.GK2911>