Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src Add lfs_checkword type for reading checksum data out of stru...



details:   https://anonhg.NetBSD.org/src/rev/fb46c43e1c40
branches:  trunk
changeset: 340818:fb46c43e1c40
user:      dholland <dholland%NetBSD.org@localhost>
date:      Sat Oct 03 08:29:34 2015 +0000

description:
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.

diffstat:

 sbin/fsck_lfs/lfs.c |  11 +++++------
 sys/ufs/lfs/lfs.h   |   5 ++++-
 2 files changed, 9 insertions(+), 7 deletions(-)

diffs (65 lines):

diff -r afa43437a18e -r fb46c43e1c40 sbin/fsck_lfs/lfs.c
--- a/sbin/fsck_lfs/lfs.c       Sat Oct 03 08:29:21 2015 +0000
+++ b/sbin/fsck_lfs/lfs.c       Sat Oct 03 08:29:34 2015 +0000
@@ -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 @@
        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 @@
                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 @@
                                       : 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 @@
                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"
diff -r afa43437a18e -r fb46c43e1c40 sys/ufs/lfs/lfs.h
--- a/sys/ufs/lfs/lfs.h Sat Oct 03 08:29:21 2015 +0000
+++ b/sys/ufs/lfs/lfs.h Sat Oct 03 08:29:34 2015 +0000
@@ -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 @@
 #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 */



Home | Main Index | Thread Index | Old Index