]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
Fix unaligned accesses in IA64 when getting disk extents
authorBarry Naujok <bnaujok@sgi.com>
Mon, 8 Dec 2008 02:42:35 +0000 (02:42 +0000)
committerBarry Naujok <bnaujok@sgi.com>
Mon, 8 Dec 2008 02:42:35 +0000 (02:42 +0000)
Merge of master-melb:xfs-cmds:32642a by kenmcd.

  Fix unaligned accesses when getting disk extents on IA64

db/bmap.c
libxfs/xfs_bmap_btree.c

index bfd4856aa44f222e79a5a3979b11c3c436671b21..ef06b306330178768a7cc37e93faf1925f8a1655 100644 (file)
--- a/db/bmap.c
+++ b/db/bmap.c
@@ -277,21 +277,14 @@ convert_extent(
        xfs_dfilblks_t          *cp,
        int                     *fp)
 {
-       xfs_bmbt_irec_t irec, *s = &irec;
-       xfs_bmbt_rec_t rpcopy, *p = &rpcopy;
+       xfs_bmbt_irec_t         irec;
 
-       memmove(&rpcopy, rp, sizeof(rpcopy));
-       libxfs_bmbt_disk_get_all(p, s);
+       libxfs_bmbt_disk_get_all(rp, &irec);
 
-       if (s->br_state == XFS_EXT_UNWRITTEN) {
-               *fp = 1;
-       } else {
-               *fp = 0;
-       }
-
-       *op = s->br_startoff;
-       *sp = s->br_startblock;
-       *cp = s->br_blockcount;
+       *fp = irec.br_state == XFS_EXT_UNWRITTEN;
+       *op = irec.br_startoff;
+       *sp = irec.br_startblock;
+       *cp = irec.br_blockcount;
 }
 
 void
index 3632d5e507f33cc7cca9d2b3434c63e015e5d106..a7a080512151e0a9a3083c5e81910cdb36a07c96 100644 (file)
@@ -181,7 +181,8 @@ xfs_bmbt_disk_get_all(
        xfs_bmbt_rec_t  *r,
        xfs_bmbt_irec_t *s)
 {
-       __xfs_bmbt_get_all(be64_to_cpu(r->l0), be64_to_cpu(r->l1), s);
+       __xfs_bmbt_get_all(get_unaligned_be64(&r->l0),
+                               get_unaligned_be64(&r->l1), s);
 }
 
 /*