]> git.proxmox.com Git - grub2.git/commitdiff
* include/grub/zfs/spa.h (zio_cksum): Add explicit members for mac.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Thu, 22 Aug 2013 14:20:32 +0000 (16:20 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Thu, 22 Aug 2013 14:20:32 +0000 (16:20 +0200)
* grub-core/fs/zfs/zfs.c (zio_read): Don't use casts to retrieve mac.

ChangeLog
grub-core/fs/zfs/zfs.c
include/grub/zfs/spa.h

index accdd4c679c812440e5e98dd392610bbc0f0c4bf..4780ec1ea2282872ab4671bfc1240c3a9bc820ba 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-08-22  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * include/grub/zfs/spa.h (zio_cksum): Add explicit members for mac.
+       * grub-core/fs/zfs/zfs.c (zio_read): Don't use casts to retrieve mac.
+
 2013-08-22  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/kern/emu/mm.c (grub_memalign): Don't define if there is no
index f4acfd827ae1e12a6f6edad18e616456315a64ff..7302b0af555b27f1e22baf8e04f8a57a97231800 100644 (file)
@@ -1871,7 +1871,7 @@ zio_read (blkptr_t *bp, grub_zfs_endian_t endian, void **buf,
          err = grub_zfs_decrypt (data->subvol.keyring[besti].cipher,
                                  data->subvol.keyring[besti].algo,
                                  &(bp)->blk_dva[encrypted],
-                                 compbuf, psize, ((grub_uint32_t *) &zc + 5),
+                                 compbuf, psize, zc.zc_mac,
                                  endian);
        }
       if (err)
index 19a2b640ad6b76b5bf062bb31c88e0541873633d..7edb8ab7d701affc0d3e47105792e4182fd25a14 100644 (file)
@@ -97,7 +97,15 @@ typedef struct dva {
  * Each block has a 256-bit checksum -- strong enough for cryptographic hashes.
  */
 typedef struct zio_cksum {
+  union
+  {
        grub_uint64_t   zc_word[4];
+       struct
+       {
+               grub_uint32_t   zc_cut_cksum[5];
+               grub_uint32_t   zc_mac[3];
+       };
+  };
 } zio_cksum_t;
 
 /*