((void)sizeof !!(exp)) => I believe it is for compiler to unflag "unused variable" warning. On Tue, Apr 4, 2017 at 3:08 PM, Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote: > On Tue, Apr 04, 2017 at 02:45:26PM +0530, Pushkar Jambhlekar wrote: >> diff --git a/drivers/staging/lustre/lustre/obdclass/cl_page.c b/drivers/staging/lustre/lustre/obdclass/cl_page.c >> index cd9a40c..71fcc4c 100644 >> --- a/drivers/staging/lustre/lustre/obdclass/cl_page.c >> +++ b/drivers/staging/lustre/lustre/obdclass/cl_page.c >> @@ -482,6 +482,7 @@ void cl_page_disown0(const struct lu_env *env, >> int cl_page_is_owned(const struct cl_page *pg, const struct cl_io *io) >> { >> struct cl_io *top = cl_io_top((struct cl_io *)io); >> + >> LINVRNT(cl_object_same(pg->cp_obj, io->ci_obj)); >> return pg->cp_state == CPS_OWNED && pg->cp_owner == top; >> } > > This is not related to the patch but I don't understand CLOBINVRNT() and > LINVRNT(). > > # define LINVRNT(exp) LASSERT(exp) > # define LINVRNT(exp) ((void)sizeof !!(exp)) > > Why do we do the sizeof() instead of just an empty define? The compiler > calculates the size at compile time and doesn't execute the expression > so it's the same as an empty define so far as I can tell. > > regards, > dan carpenter -- Jambhlekar Pushkar Arun _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel