On Wednesday, January 29, 2020 10:32 PM Christoph Hellwig wrote: > Replace an opencoded offsetof and round_up hiden behind to macros > using the open code variant using the standard helpers. > The arithmetic performed in the open coded version is correct. Reviewed-by: Chandan Rajendra <chandanrlinux@xxxxxxxxx> > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > fs/xfs/xfs_attr_list.c | 11 ++++------- > 1 file changed, 4 insertions(+), 7 deletions(-) > > diff --git a/fs/xfs/xfs_attr_list.c b/fs/xfs/xfs_attr_list.c > index 9c4acb6dc856..f1ca8ef8be22 100644 > --- a/fs/xfs/xfs_attr_list.c > +++ b/fs/xfs/xfs_attr_list.c > @@ -545,12 +545,6 @@ xfs_attr_list_int( > return error; > } > > -#define ATTR_ENTBASESIZE /* minimum bytes used by an attr */ \ > - (((struct attrlist_ent *) 0)->a_name - (char *) 0) > -#define ATTR_ENTSIZE(namelen) /* actual bytes used by an attr */ \ > - ((ATTR_ENTBASESIZE + (namelen) + 1 + sizeof(uint32_t)-1) \ > - & ~(sizeof(uint32_t)-1)) > - > /* > * Format an attribute and copy it out to the user's buffer. > * Take care to check values and protect against them changing later, > @@ -586,7 +580,10 @@ xfs_attr_put_listent( > > arraytop = sizeof(*alist) + > context->count * sizeof(alist->al_offset[0]); > - context->firstu -= ATTR_ENTSIZE(namelen); > + > + /* decrement by the actual bytes used by the attr */ > + context->firstu -= round_up(offsetof(struct attrlist_ent, a_name) + > + namelen + 1, sizeof(uint32_t)); > if (context->firstu < arraytop) { > trace_xfs_attr_list_full(context); > alist->al_more = 1; > -- chandan