From mboxrd@z Thu Jan 1 00:00:00 1970 From: Miklos Szeredi Subject: Re: [PATCH] [REPOST] fuse: drop dentry on failed revalidate Date: Fri, 2 Aug 2013 16:42:00 +0200 Message-ID: References: <20130725055209.GA15621@sh-el5.eng.rdu2.redhat.com> <51F13948.3050100@redhat.com> <20130802081701.5d9cc9bc@corrin.poochiereds.net> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Cc: Ric Wheeler , Anand Avati , Brian Foster , Linux FS Devel , fuse-devel , Alexander Viro , David Howells , Eric Paris To: Jeff Layton Return-path: Received: from mail-qe0-f41.google.com ([209.85.128.41]:34242 "EHLO mail-qe0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751357Ab3HBOmB (ORCPT ); Fri, 2 Aug 2013 10:42:01 -0400 Received: by mail-qe0-f41.google.com with SMTP id a11so382354qen.28 for ; Fri, 02 Aug 2013 07:42:00 -0700 (PDT) In-Reply-To: <20130802081701.5d9cc9bc@corrin.poochiereds.net> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Fri, Aug 2, 2013 at 2:17 PM, Jeff Layton wrote: > On Tue, 30 Jul 2013 18:16:55 +0200 Miklos Szeredi wrote: >> The other problem is that, unlike NFS, fuse doesn't currently >> reconnect these subtrees when it finds them at a different point in >> the tree. d_drop on it just makes things worse because at that point >> that subtree will not be accessible anymore (while the fuse fs is >> mounted, that is). This could be fixed pretty easily by using the >> d_materialise_*() helpers. >> > > Yes, but... > > This works on NFS since we have an expectation that we can identify an > inode again when we see it. Given some of the strange userland > filesystems that FUSE supports, does that expectation hold there? If > not then you might still end up with disconnected subtrees. We'll end up with disconnected subtrees in NFS as well. That state can remain indefinitely. It will either be reconnected when we come accross the inode "by chance" or dissolved when it is no longer referenced and the dentries reclaimed. And as long as there are no mounts under the disconnected subtree, there's no big problem. If some strange filesystem doesn't support identifying a disconnected subtree it will just not be reconnected. But that can happen with NFS as well, if the new location is never accessed, so it's not something new. Thanks, Miklos