From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Kent Subject: Re: Linux 2.6.26-rc4 Date: Wed, 04 Jun 2008 09:36:56 +0800 Message-ID: <1212543417.3146.16.camel@raven.themaw.net> References: <20080603104035.GT28946@ZenIV.linux.org.uk> <20080603105258.GV28946@ZenIV.linux.org.uk> <1212499623.3025.46.camel@raven.themaw.net> <1212509263.3025.66.camel@raven.themaw.net> <1212513189.3025.101.camel@raven.themaw.net> <20080603173029.GD28946@ZenIV.linux.org.uk> <20080603191859.GG28946@ZenIV.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Cc: Jeff Moyer , Linus Torvalds , Miklos Szeredi , jesper@krogh.cc, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org To: Al Viro Return-path: In-Reply-To: <20080603191859.GG28946@ZenIV.linux.org.uk> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Tue, 2008-06-03 at 20:18 +0100, Al Viro wrote: > On Tue, Jun 03, 2008 at 01:46:41PM -0400, Jeff Moyer wrote: > > > Well, let me know what level of dump you'd like. I can give the 50,000 > > foot view, or I can give you the history of things that happened to get > > us to where we are today, or anything inbetween. The more specific > > your request, the quicker I can respond. A full brain-dump would take > > some time! > > a) what the hell is going on in autofs4_free_ino()? It checks for > ino->dentry, when the only caller has just set it to NULL. I know. I need to clean that up. > > b) while we are at it, what's ino->inode doing there? AFAICS, it's > a write-only field... I know. And I think it has never been used anywhere either but I haven't removed it from the info structure. > > c) what are possible states of autofs4 dentry and what's the supposed > life cycle of these beasts? > > d) > /* For dentries of directories in the root dir */ > static struct dentry_operations autofs4_root_dentry_operations = { > .d_revalidate = autofs4_revalidate, > .d_release = autofs4_dentry_release, > }; > > /* For other dentries */ > static struct dentry_operations autofs4_dentry_operations = { > .d_revalidate = autofs4_revalidate, > .d_release = autofs4_dentry_release, > }; > > Just what is the difference? There isn't any difference. There's no real reason to keep them different except that there are two distinct sets of operations. I don't see any harm in retaining this. > > e) in autofs4_tree_busy() we do atomic_read() on ino->count and dentry->d_count > What's going to keep these suckers consistent with each other in any useful > way? The only time ino->count is changed is in ->mkdir(), ->rmdir and ->symlink() and ->unlink(). So it is supposed to represent the minimal reference count. The code in autofs4_free_ino() should go but that may be a bug, I need to check.