[Ocfs2-devel] [PATCH] quota: Add helpers to allow ocfs2 specific quota initialization and freeing
Joel Becker
Joel.Becker at oracle.com
Tue Oct 21 13:22:16 PDT 2008
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".
Joel
--
"The doctrine of human equality reposes on this: that there is no
man really clever who has not found that he is stupid."
- Gilbert K. Chesterson
Joel Becker
Principal Software Developer
Oracle
E-mail: joel.becker at oracle.com
Phone: (650) 506-8127
More information about the Ocfs2-devel
mailing list