mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
gfs2: Add a crc field to resource group headers
Add the rg_crc field to store a crc32 of the gfs2_rgrp structure. This allows us to check resource group headers' integrity and removes the requirement to check them against the rindex entries in fsck. If this field is found to be zero, it should be ignored (or updated with an accurate value). Signed-off-by: Andrew Price <[email protected]> Signed-off-by: Bob Peterson <[email protected]>
This commit is contained in:
parent
166725d963
commit
850d2d915f
2 changed files with 7 additions and 1 deletions
|
|
@ -34,6 +34,7 @@
|
|||
#include "log.h"
|
||||
#include "inode.h"
|
||||
#include "trace_gfs2.h"
|
||||
#include "dir.h"
|
||||
|
||||
#define BFITNOENT ((u32)~0)
|
||||
#define NO_BLOCK ((u64)~0)
|
||||
|
|
@ -1047,6 +1048,7 @@ static void gfs2_rgrp_out(struct gfs2_rgrpd *rgd, void *buf)
|
|||
{
|
||||
struct gfs2_rgrpd *next = gfs2_rgrpd_get_next(rgd);
|
||||
struct gfs2_rgrp *str = buf;
|
||||
u32 crc;
|
||||
|
||||
str->rg_flags = cpu_to_be32(rgd->rd_flags & ~GFS2_RDF_MASK);
|
||||
str->rg_free = cpu_to_be32(rgd->rd_free);
|
||||
|
|
@ -1059,6 +1061,9 @@ static void gfs2_rgrp_out(struct gfs2_rgrpd *rgd, void *buf)
|
|||
str->rg_data0 = cpu_to_be64(rgd->rd_data0);
|
||||
str->rg_data = cpu_to_be32(rgd->rd_data);
|
||||
str->rg_bitbytes = cpu_to_be32(rgd->rd_bitbytes);
|
||||
str->rg_crc = 0;
|
||||
crc = gfs2_disk_hash(buf, sizeof(struct gfs2_rgrp));
|
||||
str->rg_crc = cpu_to_be32(crc);
|
||||
|
||||
memset(&str->rg_reserved, 0, sizeof(str->rg_reserved));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue