[Cluster-devel] [PATCH 3/3] gfs2: Add a crc field to resource group headers

Andrew Price anprice at redhat.com
Thu Dec 7 14:26:41 UTC 2017


On 07/12/17 12:32, Andrew Price wrote:
> On 07/12/17 12:02, Steven Whitehouse wrote:
>>> --- a/include/uapi/linux/gfs2_ondisk.h
>>> +++ b/include/uapi/linux/gfs2_ondisk.h
>>> @@ -197,8 +197,9 @@ struct gfs2_rgrp {
>>>       __be64 rg_data0;     /* First data location */
>>>       __be32 rg_data;      /* Number of data blocks in rgrp */
>>>       __be32 rg_bitbytes;  /* Number of bytes in data bitmaps */
>>> +    __be32 rg_crc;       /* crc32 of the structure with this field 0 */
>> In this case because rg_crc is followed by another structure element, 
>> if that element is 64 bit aligned, then there might be a gap here. 
>> Worth checking that the overall structure size has not changed, and 
>> might be worth adding an explicit 32 bit pad field to pair up with the 
>> crc too, and reducing the reserved field by another 4 bytes.
> 
> sizeof(struct gfs2_rgrp) is 128 before and after the change, which I 
> would expect as rg_reserved doesn't require 64-bit alignment. I can add 
> a padding field as documentation though.

Thinking about this again, adding a padding field like this would need 
special casing in the rgrp_in and out functions so I'm not sure it's 
worth making that change.

Andy




More information about the Cluster-devel mailing list