Module Name: src Committed By: dholland Date: Sat Oct 3 08:29:34 UTC 2015
Modified Files: src/sbin/fsck_lfs: lfs.c src/sys/ufs/lfs: lfs.h Log Message: Add lfs_checkword type for reading checksum data out of structures. This is always uint32_t, but having a name for it both makes things clearer and avoids confusion about whether it should be 32 or 64 bit. Note: deployed in only one place (that was erroneously tagged ondisk32) so far. To generate a diff of this commit: cvs rdiff -u -r1.65 -r1.66 src/sbin/fsck_lfs/lfs.c cvs rdiff -u -r1.193 -r1.194 src/sys/ufs/lfs/lfs.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sbin/fsck_lfs/lfs.c diff -u src/sbin/fsck_lfs/lfs.c:1.65 src/sbin/fsck_lfs/lfs.c:1.66 --- src/sbin/fsck_lfs/lfs.c:1.65 Sat Oct 3 08:29:21 2015 +++ src/sbin/fsck_lfs/lfs.c Sat Oct 3 08:29:34 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs.c,v 1.65 2015/10/03 08:29:21 dholland Exp $ */ +/* $NetBSD: lfs.c,v 1.66 2015/10/03 08:29:34 dholland Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. * All rights reserved. @@ -764,7 +764,7 @@ check_summary(struct lfs *fs, SEGSUM *sp IINFO *iibase, *iip; struct ubuf *bp; int i, j, k, datac, len; - u_int32_t *datap; + lfs_checkword *datap; u_int32_t ccksum; /* We've already checked the sumsum, just do the data bounds and sum */ @@ -808,7 +808,7 @@ check_summary(struct lfs *fs, SEGSUM *sp while (j < howmany(lfs_ss_getninos(fs, sp), LFS_INOPB(fs)) && lfs_ii_getblock(fs, iip) == daddr) { bread(devvp, LFS_FSBTODB(fs, daddr), lfs_sb_getibsize(fs), 0, &bp); - datap[datac++] = ((u_int32_t *) (bp->b_data))[0]; + datap[datac++] = ((lfs_checkword *)bp->b_data)[0]; brelse(bp, 0); ++j; @@ -824,7 +824,7 @@ check_summary(struct lfs *fs, SEGSUM *sp : lfs_sb_getbsize(fs)); bread(devvp, LFS_FSBTODB(fs, daddr), len, 0, &bp); - datap[datac++] = ((u_int32_t *) (bp->b_data))[0]; + datap[datac++] = ((lfs_checkword *)bp->b_data)[0]; brelse(bp, 0); daddr += lfs_btofsb(fs, len); } @@ -836,8 +836,7 @@ check_summary(struct lfs *fs, SEGSUM *sp pwarn("Partial segment at 0x%jx expected %d blocks counted %d\n", (intmax_t)pseg_addr, nblocks, datac); } - /* XXX ondisk32 */ - ccksum = cksum(datap, nblocks * sizeof(u_int32_t)); + ccksum = cksum(datap, nblocks * sizeof(datap[0])); /* Check the data checksum */ if (ccksum != lfs_ss_getdatasum(fs, sp)) { pwarn("Partial segment at 0x%jx data checksum" Index: src/sys/ufs/lfs/lfs.h diff -u src/sys/ufs/lfs/lfs.h:1.193 src/sys/ufs/lfs/lfs.h:1.194 --- src/sys/ufs/lfs/lfs.h:1.193 Sat Oct 3 08:27:38 2015 +++ src/sys/ufs/lfs/lfs.h Sat Oct 3 08:29:34 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs.h,v 1.193 2015/10/03 08:27:38 dholland Exp $ */ +/* $NetBSD: lfs.h,v 1.194 2015/10/03 08:29:34 dholland Exp $ */ /* from NetBSD: dinode.h,v 1.22 2013/01/22 09:39:18 dholland Exp */ /* from NetBSD: dir.h,v 1.21 2009/07/22 04:49:19 dholland Exp */ @@ -695,6 +695,9 @@ typedef union _cleanerinfo { #define SS_RFW 0x08 /* written by the roll-forward agent */ #define SS_RECLAIM 0x10 /* written by the roll-forward agent */ +/* type used for reading checksum signatures from metadata structures */ +typedef uint32_t lfs_checkword; + typedef struct segsum_v1 SEGSUM_V1; struct segsum_v1 { u_int32_t ss_sumsum; /* 0: check sum of summary block */