[Ocfs2-devel] [PATCH] quota: Add helpers to allow ocfs2 specific quota initialization and freeing

Jan Kara jack at suse.cz
Wed Oct 22 04:47:05 PDT 2008


On Tue 21-10-08 13:22:16, Joel Becker wrote:
> On Mon, Oct 20, 2008 at 07:23:49PM +0200, Jan Kara wrote:
> > OCFS2 needs to peek whether quota structure is already in memory so
> > that it can avoid expensive cluster locking in that case. Similarly
> > when freeing dquots, it checks whether it is the last quota structure
> > user or not.
> > 
> > Signed-off-by: Jan Kara <jack at suse.cz>
> > ---
> >  fs/dquot.c               |   30 ++++++++++++++++++++++++++++--
> >  include/linux/quotaops.h |    2 ++
> >  2 files changed, 30 insertions(+), 2 deletions(-)
> > 
> > diff --git a/fs/dquot.c b/fs/dquot.c
> > index 3fde18b..c5016a2 100644
> > --- a/fs/dquot.c
> > +++ b/fs/dquot.c
> > @@ -660,6 +660,24 @@ static struct dquot *get_empty_dquot(struct super_block *sb, int type)
> >  }
> >  
> >  /*
> > + * Check whether dquot is in memory.
> > + * MUST be called with either dqptr_sem or dqonoff_mutex held
> > + */
> > +int dquot_is_cached(struct super_block *sb, unsigned int id, int type)
> > +{
> > +	unsigned int hashent = hashfn(sb, id, type);
> > +	int ret = 0;
> > +
> > +        if (!sb_has_quota_active(sb, type))
> > +		return 0;
> > +	spin_lock(&dq_list_lock);
> > +	if (find_dquot(hashent, sb, id, type) == NODQUOT)
> > +		ret = 1;
> > +	spin_unlock(&dq_list_lock);
> > +	return ret;
> > +}
> 
> 	I may have this backwards, but should that be "!= NODQUOT"?  As
> far as I can tell, NODQUOT means "not found", and returning 1 means
> "found".
  Of course, you are right. Thanks for catching this. Fixed.

								Honza

-- 
Jan Kara <jack at suse.cz>
SUSE Labs, CR



More information about the Ocfs2-devel mailing list