Re: [PATCH 09/12] ocfs2: Convert to private i_dquot field

Jan Kara <[email protected]>
Newsgroups gmane.comp.file-systems.jfs.general
Message-ID <20141023120529.GA20067__27661.2363559709$1414065967$gmane$org@quack.suse.cz>
On Thu 23-10-14 11:25:57, Joel Becker wrote:
> On Tue, Oct 21, 2014 at 04:38:33PM +0200, Jan Kara wrote:
> > CC: Mark Fasheh <[email protected]>
> > CC: Joel Becker <[email protected]>
> > CC: [email protected]
> > Signed-off-by: Jan Kara <[email protected]>
> > ---
> >  fs/ocfs2/inode.h |  4 ++++
> >  fs/ocfs2/super.c | 10 ++++++++++
> >  2 files changed, 14 insertions(+)
> > 
> > diff --git a/fs/ocfs2/inode.h b/fs/ocfs2/inode.h
> > index a9b76de46047..1bb2e27eaad7 100644
> > --- a/fs/ocfs2/inode.h
> > +++ b/fs/ocfs2/inode.h
> > @@ -80,6 +80,10 @@ struct ocfs2_inode_info
> >  	 */
> >  	tid_t i_sync_tid;
> >  	tid_t i_datasync_tid;
> > +
> > +#ifdef CONFIG_QUOTA
> > +	struct dquot *i_dquot[MAXQUOTAS];
> > +#endif
> >  };
> >  
> >  /*
> > diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
> > index 93c85bc745e1..9a97986d54f5 100644
> > --- a/fs/ocfs2/super.c
> > +++ b/fs/ocfs2/super.c
> > @@ -143,6 +143,11 @@ static int ocfs2_susp_quotas(struct ocfs2_super *osb, int unsuspend);
> >  static int ocfs2_enable_quotas(struct ocfs2_super *osb);
> >  static void ocfs2_disable_quotas(struct ocfs2_super *osb);
> >  
> > +static struct dquot **ocfs2_get_dquots(struct inode *inode)
> > +{
> > +	return OCFS2_I(inode)->i_dquot;
> > +}
> 
> Call me silly, but given that ocfs2_inode_info->i_dquot; is wrapped in
> CONFIG_QUOTA, shouldn't this accessor be as well?  Is GCC really smart
> enough to ignore the undefined member because ocfs2_get_dquots() isn't
> called?
  Actually, ocfs2 selects QUOTA so it cannot happen that CONFIG_QUOTA isn't
defined for ocfs2. I'll remove the CONFIG_QUOTA checks from ocfs2 patch.

								Honza
> 
> Joel
> 
> > +
> >  static const struct super_operations ocfs2_sops = {
> >  	.statfs		= ocfs2_statfs,
> >  	.alloc_inode	= ocfs2_alloc_inode,
> > @@ -155,6 +160,7 @@ static const struct super_operations ocfs2_sops = {
> >  	.show_options   = ocfs2_show_options,
> >  	.quota_read	= ocfs2_quota_read,
> >  	.quota_write	= ocfs2_quota_write,
> > +	.get_dquots	= ocfs2_get_dquots,
> >  };
> >  
> >  enum {
> > @@ -563,6 +569,9 @@ static struct inode *ocfs2_alloc_inode(struct super_block *sb)
> >  
> >  	oi->i_sync_tid = 0;
> >  	oi->i_datasync_tid = 0;
> > +#ifdef CONFIG_QUOTA
> > +	memset(&oi->i_dquot, 0, sizeof(oi->i_dquot));
> > +#endif
> >  
> >  	jbd2_journal_init_jbd_inode(&oi->ip_jinode, &oi->vfs_inode);
> >  	return &oi->vfs_inode;
> > @@ -2073,6 +2082,7 @@ static int ocfs2_initialize_super(struct super_block *sb,
> >  	sb->s_export_op = &ocfs2_export_ops;
> >  	sb->s_qcop = &ocfs2_quotactl_ops;
> >  	sb->dq_op = &ocfs2_quota_operations;
> > +	sb_dqopt(sb)->allowed_types = QTYPE_MASK_USR | QTYPE_MASK_GRP;
> >  	sb->s_xattr = ocfs2_xattr_handlers;
> >  	sb->s_time_gran = 1;
> >  	sb->s_flags |= MS_NOATIME;
> > -- 
> > 1.8.1.4
> > 
> 
> -- 
> 
> "I'm so tired of being tired,
>  Sure as night will follow day.
>  Most things I worry about
>  Never happen anyway."
> 
> 			http://www.jlbec.org/
> 			[email protected]
-- 
Jan Kara <[email protected]>
SUSE Labs, CR

------------------------------------------------------------------------------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.