nilfs2: super block operations fix endian bug
This adds a missing endian conversion of checksum field in the super block. This fixes compatibility issue on big endian machines which will come to surface after supporting recovery of super block. Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
1f5abe7e7d
commit
e626874685
|
@ -287,9 +287,9 @@ int nilfs_commit_super(struct nilfs_sb_info *sbi)
|
||||||
sbp->s_free_blocks_count = cpu_to_le64(nfreeblocks);
|
sbp->s_free_blocks_count = cpu_to_le64(nfreeblocks);
|
||||||
sbp->s_wtime = cpu_to_le64(get_seconds());
|
sbp->s_wtime = cpu_to_le64(get_seconds());
|
||||||
sbp->s_sum = 0;
|
sbp->s_sum = 0;
|
||||||
sbp->s_sum = crc32_le(nilfs->ns_crc_seed, (unsigned char *)sbp,
|
sbp->s_sum = cpu_to_le32(crc32_le(nilfs->ns_crc_seed,
|
||||||
le16_to_cpu(sbp->s_bytes));
|
(unsigned char *)sbp,
|
||||||
|
le16_to_cpu(sbp->s_bytes)));
|
||||||
sbi->s_super->s_dirt = 0;
|
sbi->s_super->s_dirt = 0;
|
||||||
return nilfs_sync_super(sbi);
|
return nilfs_sync_super(sbi);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue