On 09/04/2014 02:58 AM, Stefan Hajnoczi wrote: > On-disk structures should be marked packed so the compiler does not > insert padding for field alignment. Padding should be explicit so > on-disk layout is obvious and we don't rely on the architecture-specific > ABI for alignment rules. > > The pahole(1) diff shows that the padding is now explicit and offsets > are unchanged: > > char backing_file[1024]; /* 8 1024 */ > /* --- cacheline 16 boundary (1024 bytes) was 8 bytes ago --- */ > int32_t mtime; /* 1032 4 */ > - > - /* XXX 4 bytes hole, try to pack */ > - > + uint32_t padding; /* 1036 4 */ > uint64_t size; /* 1040 8 */
Was a 32-bit build also inserting this padding, or do we have historical differences where 32-bit and 64-bit cow files are actually different, and we may need to be prepared to parse files from both sources? -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature