[Ocfs2-devel] [PATCH 1/3] Ocfs2: Using macro to set/clear *FILLED* flags in info handler.

Joel Becker jlbec at evilplan.org
Mon Jan 31 17:10:12 PST 2011


On Mon, Jan 31, 2011 at 02:15:47PM -0800, Mark Fasheh wrote:
> > +static inline void __o2info_set_request_filled(struct ocfs2_info_request *req)
> > +{
> > +	req->ir_flags |= OCFS2_INFO_FL_FILLED;
> > +}
> > +
> > +#define o2info_set_request_filled(a) \
> > +		__o2info_set_request_filled((struct ocfs2_info_request *)&(a))
> 
> The macro here (and below) casts it's argument, thus defeating any
> typechecking we would have gotten from the function call. Can you
> pleaseremove the macro, rename the functions (take out the __) and use them
> directly? I know we might then want to deref the i*_req field in the
> handlers below but I don't think that's a big deal for what we gain.

	I'm not sure what you mean here.  Are you asking for one
set_request_filled() call per info type?

---------------------------------------------
static inline void o2info_clustersize_set_request_filled(struct ocfs2_info_clutersize *ic)
{
	ic->ic_req.ir_flags |= OCFS2_INFO_FL_FILLED;
}

static inline void o2info_blocksize_set_request_filled(struct ocfs2_info_blocksize *ib)
{
	ib->ib_req.ir_flags |= OCFS2_INFO_FL_FILLED;
}

...

---------------------------------------------

	Because that is way uglier than open-coding the |= in the
functions, IMHO.

Joel

-- 

"One of the symptoms of an approaching nervous breakdown is the
 belief that one's work is terribly important."
         - Bertrand Russell 

			http://www.jlbec.org/
			jlbec at evilplan.org



More information about the Ocfs2-devel mailing list