On 1/29/20 11:56 AM, Darrick J. Wong wrote: > On Wed, Jan 29, 2020 at 11:45:05AM -0600, Eric Sandeen wrote: >> gcc now warns about taking an address of a packed structure member. >> >> This happens here because of how be32_add_cpu() works; just open-code >> the modification using a temporary variable instead. >> >> Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx> >> --- >> >> diff --git a/fs/xfs/libxfs/xfs_rmap_btree.c b/fs/xfs/libxfs/xfs_rmap_btree.c >> index fc78efa52c94..ad5ead62c992 100644 >> --- a/fs/xfs/libxfs/xfs_rmap_btree.c >> +++ b/fs/xfs/libxfs/xfs_rmap_btree.c >> @@ -182,12 +182,14 @@ xfs_rmapbt_init_high_key_from_rec( >> union xfs_btree_rec *rec) >> { >> uint64_t off; >> + xfs_agblock_t start; >> int adj; >> >> adj = be32_to_cpu(rec->rmap.rm_blockcount) - 1; >> >> key->rmap.rm_startblock = rec->rmap.rm_startblock; > > I was gonna say to kill this statement since you set it again two lines > later, but then spotted a bug two lines down... > >> - be32_add_cpu(&key->rmap.rm_startblock, adj); >> + start = be32_to_cpu(rec->rmap.rm_startblock) - adj; >> + rec->rmap.rm_startblock = cpu_to_be32(start); /searches for that brown paper bag thanks -Eric