From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeff Liu Subject: Re: [PATCH]: Remove redundant underlying file system checking that the quota files resides from dquot_quota_on() Date: Mon, 23 Apr 2012 08:02:42 +0800 Message-ID: <4F949C22.7050103@oracle.com> References: <4F93A22D.300@oracle.com> <20120423074412.GA6512@quack.suse.cz> Reply-To: jeff.liu@oracle.com Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: "linux-fsdevel@vger.kernel.org" To: Jan Kara Return-path: Received: from rcsinet15.oracle.com ([148.87.113.117]:18657 "EHLO rcsinet15.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751577Ab2DWIFw (ORCPT ); Mon, 23 Apr 2012 04:05:52 -0400 In-Reply-To: <20120423074412.GA6512@quack.suse.cz> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Hi Jan, On 04/23/2012 03:44 PM, Jan Kara wrote: > Hi, > > On Sun 22-04-12 14:16:13, Jeff Liu wrote: >> When executing quotaon(8), all the file systems(ext3/ext4/reiserfs) >> binded to the VFS quota framework have already ensured that the quota >> files are resides on the same file system with the specified super block >> before invoking dquot_quota_on(), looks like we can be safely remove it >> from there IMHO. > Not really, ext2 doesn't perform the check. Also ext3 or reiserfs when > not using journalled quota don't do the check. So the test has to stay > there. Is there any special reason why you would like to have it removed? No special reason, I just found that this check has been done at the beginning of ext3/ext4/reiserfs->(ext3/ext4/reiserfs)_quota_on() for journalled quota, but not realized that ext2 quota works without journall. :( Sorry for the noise! Thanks, -Jeff > > Honza > >> --- >> fs/quota/dquot.c | 11 ++++------- >> 1 files changed, 4 insertions(+), 7 deletions(-) >> >> diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c >> index 4674197..cb917a2 100644 >> --- a/fs/quota/dquot.c >> +++ b/fs/quota/dquot.c >> @@ -2199,13 +2199,10 @@ int dquot_quota_on(struct super_block *sb, int type, int format_id, >> int error = security_quota_on(path->dentry); >> if (error) >> return error; >> - /* Quota file not on the same filesystem? */ >> - if (path->dentry->d_sb != sb) >> - error = -EXDEV; >> - else >> - error = vfs_load_quota_inode(path->dentry->d_inode, type, >> - format_id, DQUOT_USAGE_ENABLED | >> - DQUOT_LIMITS_ENABLED); >> + >> + error = vfs_load_quota_inode(path->dentry->d_inode, type, >> + format_id, DQUOT_USAGE_ENABLED | >> + DQUOT_LIMITS_ENABLED); >> return error; >> } >> EXPORT_SYMBOL(dquot_quota_on); >> -- >> 1.7.9