slab flag passed into __OBD_SLAB_ALLOC_VERBOSE is not bracketed,
so __OBD_SLAB_ALLOC_VERBOSE will get wrong value from unexpected
expression expansion and hit assertion.
Signed-off-by: Liang Zhen <liang.zhen@intel.com>
Change-Id: I4f09ccf743d6bda765bab64c60801a87d9a6b9b5
Reviewed-on: http://review.whamcloud.com/6190
Tested-by: Hudson
Reviewed-by: Nikitas Angelinas <nikitas_angelinas@xyratex.com>
Reviewed-by: Bobi Jam <bobijam@gmail.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
#define __OBD_SLAB_ALLOC_VERBOSE(ptr, slab, cptab, cpt, size, type) \
do { \
- LASSERT(ergo(type != CFS_ALLOC_ATOMIC, !cfs_in_interrupt())); \
+ LASSERT(ergo((type) != CFS_ALLOC_ATOMIC, !cfs_in_interrupt())); \
(ptr) = (cptab) == NULL ? \
cfs_mem_cache_alloc(slab, type) : \
cfs_mem_cache_cpt_alloc(slab, cptab, cpt, type); \
OBD_SLAB_CPT_ALLOC_PTR_GFP(orro, orrd->od_cache,
nrs_pol2cptab(policy), nrs_pol2cptid(policy),
- moving_req ? CFS_ALLOC_ATOMIC :
- CFS_ALLOC_IO);
+ (moving_req ? CFS_ALLOC_ATOMIC :
+ CFS_ALLOC_IO));
if (orro == NULL)
RETURN(-ENOMEM);