xfs: fix unaligned access in xfs_btree_visit_blocks
authorEric Sandeen <sandeen@sandeen.net>
Tue, 23 May 2017 02:54:10 +0000 (19:54 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 7 Jun 2017 10:01:53 +0000 (12:01 +0200)
commit a4d768e702de224cc85e0c8eac9311763403b368 upstream.

This structure copy was throwing unaligned access warnings on sparc64:

Kernel unaligned access at TPC[1043c088] xfs_btree_visit_blocks+0x88/0xe0 [xfs]

xfs_btree_copy_ptrs does a memcpy, which avoids it.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/xfs/libxfs/xfs_btree.c

index 8fe6a93ff4736e4c1cdd6f5c7cfa73b9f5d93fc1..c52e373ece5604cb67c47c9d32b05eaf32b0a4e0 100644 (file)
@@ -4051,7 +4051,7 @@ xfs_btree_change_owner(
                        xfs_btree_readahead_ptr(cur, ptr, 1);
 
                        /* save for the next iteration of the loop */
-                       lptr = *ptr;
+                       xfs_btree_copy_ptrs(cur, &lptr, ptr, 1);
                }
 
                /* for each buffer in the level */