Source-Changes-HG archive

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

[src/trunk]: src Second batch of 64 -> 32 truncations in lfs, along with more...



details:   https://anonhg.NetBSD.org/src/rev/bffd3f803753
branches:  trunk
changeset: 339659:bffd3f803753
user:      dholland <dholland%NetBSD.org@localhost>
date:      Sun Aug 02 18:10:07 2015 +0000

description:
Second batch of 64 -> 32 truncations in lfs, along with more minor
tidyups and corrections in passing.

diffstat:

 libexec/lfs_cleanerd/cleaner.h      |   1 -
 libexec/lfs_cleanerd/lfs_cleanerd.c |  35 +++++++++++++++++++----------------
 sbin/fsck_lfs/lfs.c                 |  12 ++++++------
 sbin/fsck_lfs/setup.c               |  25 +++++++++++++------------
 sbin/newfs_lfs/make_lfs.c           |   5 +++--
 sys/ufs/lfs/lfs.h                   |   8 ++++----
 sys/ufs/lfs/lfs_accessors.h         |  16 ++++++++--------
 sys/ufs/lfs/lfs_debug.c             |  24 ++++++++++++------------
 sys/ufs/lfs/lfs_extern.h            |   4 ++--
 sys/ufs/lfs/lfs_pages.c             |  12 ++++++------
 sys/ufs/lfs/lfs_segment.c           |   7 ++++---
 sys/ufs/lfs/lfs_vfsops.c            |   6 +++---
 usr.sbin/dumplfs/dumplfs.c          |  30 +++++++++++++++---------------
 13 files changed, 95 insertions(+), 90 deletions(-)

diffs (truncated from 591 to 300 lines):

diff -r fff3bcb55900 -r bffd3f803753 libexec/lfs_cleanerd/cleaner.h
--- a/libexec/lfs_cleanerd/cleaner.h    Sun Aug 02 18:08:12 2015 +0000
+++ b/libexec/lfs_cleanerd/cleaner.h    Sun Aug 02 18:10:07 2015 +0000
@@ -63,7 +63,6 @@
 void lfs_ientry(IFILE **, struct clfs *, ino_t, struct ubuf **);
 int load_segment(struct clfs *, int, BLOCK_INFO **, int *);
 int needs_cleaning(struct clfs *, CLEANERINFO *);
-int32_t parse_pseg(struct clfs *, daddr_t, BLOCK_INFO **, int *);
 int reinit_fs(struct clfs *);
 void reload_ifile(struct clfs *);
 void toss_old_blocks(struct clfs *, BLOCK_INFO **, int *, int *);
diff -r fff3bcb55900 -r bffd3f803753 libexec/lfs_cleanerd/lfs_cleanerd.c
--- a/libexec/lfs_cleanerd/lfs_cleanerd.c       Sun Aug 02 18:08:12 2015 +0000
+++ b/libexec/lfs_cleanerd/lfs_cleanerd.c       Sun Aug 02 18:10:07 2015 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: lfs_cleanerd.c,v 1.41 2015/07/28 05:14:23 dholland Exp $    */
+/* $NetBSD: lfs_cleanerd.c,v 1.42 2015/08/02 18:10:07 dholland Exp $    */
 
 /*-
  * Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -380,13 +380,14 @@
  * Parse the partial segment at daddr, adding its information to
  * bip.         Return the address of the next partial segment to read.
  */
-int32_t
+static daddr_t
 parse_pseg(struct clfs *fs, daddr_t daddr, BLOCK_INFO **bipp, int *bic)
 {
        SEGSUM *ssp;
        IFILE *ifp;
        BLOCK_INFO *bip, *nbip;
-       int32_t *iaddrp, idaddr, odaddr;
+       int32_t *iaddrp;
+       daddr_t idaddr, odaddr;
        FINFO *fip;
        struct ubuf *ifbp;
        struct ulfs1_dinode *dip;
@@ -405,6 +406,7 @@
         */
        cp = fd_ptrget(fs->clfs_devvp, daddr);
        ssp = (SEGSUM *)cp;
+       /* XXX ondisk32 */
        iaddrp = ((int32_t *)(cp + lfs_sb_getibsize(fs))) - 1;
        fip = (FINFO *)(cp + sizeof(SEGSUM));
 
@@ -412,16 +414,16 @@
         * Check segment header magic and checksum
         */
        if (ssp->ss_magic != SS_MAGIC) {
-               syslog(LOG_WARNING, "%s: sumsum magic number bad at 0x%x:"
+               syslog(LOG_WARNING, "%s: sumsum magic number bad at 0x%jx:"
                       " read 0x%x, expected 0x%x", lfs_sb_getfsmnt(fs),
-                      (int32_t)daddr, ssp->ss_magic, SS_MAGIC);
+                      (intmax_t)daddr, ssp->ss_magic, SS_MAGIC);
                return 0x0;
        }
        ck = cksum(&ssp->ss_datasum, lfs_sb_getsumsize(fs) - sizeof(ssp->ss_sumsum));
        if (ck != ssp->ss_sumsum) {
-               syslog(LOG_WARNING, "%s: sumsum checksum mismatch at 0x%x:"
+               syslog(LOG_WARNING, "%s: sumsum checksum mismatch at 0x%jx:"
                       " read 0x%x, computed 0x%x", lfs_sb_getfsmnt(fs),
-                      (int32_t)daddr, ssp->ss_sumsum, ck);
+                      (intmax_t)daddr, ssp->ss_sumsum, ck);
                return 0x0;
        }
 
@@ -443,8 +445,8 @@
                 * If we don't have either one, it's an error.
                 */
                if (fic >= ssp->ss_nfinfo && *iaddrp != daddr) {
-                       syslog(LOG_WARNING, "%s: bad pseg at %x (seg %d)",
-                              lfs_sb_getfsmnt(fs), odaddr, lfs_dtosn(fs, odaddr));
+                       syslog(LOG_WARNING, "%s: bad pseg at %jx (seg %d)",
+                              lfs_sb_getfsmnt(fs), (intmax_t)odaddr, lfs_dtosn(fs, odaddr));
                        *bipp = bip;
                        return 0x0;
                }
@@ -517,8 +519,8 @@
                        struct ubuf *nbp;
                        SEGSUM *nssp;
 
-                       syslog(LOG_WARNING, "fixing short FINFO at %x (seg %d)",
-                              odaddr, lfs_dtosn(fs, odaddr));
+                       syslog(LOG_WARNING, "fixing short FINFO at %jx (seg %d)",
+                              (intmax_t)odaddr, lfs_dtosn(fs, odaddr));
                        bread(fs->clfs_devvp, odaddr, lfs_sb_getfsize(fs),
                            0, &nbp);
                        nssp = (SEGSUM *)nbp->b_data;
@@ -527,8 +529,8 @@
                                lfs_sb_getsumsize(fs) - sizeof(nssp->ss_sumsum));
                        bwrite(nbp);
 #endif
-                       syslog(LOG_WARNING, "zero-length FINFO at %x (seg %d)",
-                              odaddr, lfs_dtosn(fs, odaddr));
+                       syslog(LOG_WARNING, "zero-length FINFO at %jx (seg %d)",
+                              (intmax_t)odaddr, lfs_dtosn(fs, odaddr));
                        continue;
                }
 
@@ -590,8 +592,9 @@
 
 #ifndef REPAIR_ZERO_FINFO
        if (ssp->ss_datasum != ck) {
-               syslog(LOG_WARNING, "%s: data checksum bad at 0x%x:"
-                      " read 0x%x, computed 0x%x", lfs_sb_getfsmnt(fs), odaddr,
+               syslog(LOG_WARNING, "%s: data checksum bad at 0x%jx:"
+                      " read 0x%x, computed 0x%x", lfs_sb_getfsmnt(fs),
+                      (intmax_t)odaddr,
                       ssp->ss_datasum, ck);
                *bic = obic;
                return 0x0;
@@ -637,7 +640,7 @@
 int
 load_segment(struct clfs *fs, int sn, BLOCK_INFO **bipp, int *bic)
 {
-       int32_t daddr;
+       daddr_t daddr;
        int i, npseg;
 
        daddr = lfs_sntod(fs, sn);
diff -r fff3bcb55900 -r bffd3f803753 sbin/fsck_lfs/lfs.c
--- a/sbin/fsck_lfs/lfs.c       Sun Aug 02 18:08:12 2015 +0000
+++ b/sbin/fsck_lfs/lfs.c       Sun Aug 02 18:10:07 2015 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: lfs.c,v 1.49 2015/08/02 18:08:12 dholland Exp $ */
+/* $NetBSD: lfs.c,v 1.50 2015/08/02 18:10:08 dholland Exp $ */
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -644,7 +644,7 @@
                        break;
                }
                if (debug)
-                       pwarn("summary good: 0x%x/%d\n", (int)daddr,
+                       pwarn("summary good: 0x%x/%d\n", (uintmax_t)daddr,
                              (int)sp->ss_serial);
                assert (bc > 0);
                odaddr = daddr;
@@ -818,15 +818,15 @@
        }
 
        if (datac != nblocks) {
-               pwarn("Partial segment at 0x%llx expected %d blocks counted %d\n",
-                   (long long) pseg_addr, nblocks, datac);
+               pwarn("Partial segment at 0x%jx expected %d blocks counted %d\n",
+                   (intmax_t)pseg_addr, nblocks, datac);
        }
        ccksum = cksum(datap, nblocks * sizeof(u_int32_t));
        /* Check the data checksum */
        if (ccksum != sp->ss_datasum) {
-               pwarn("Partial segment at 0x%" PRIx32 " data checksum"
+               pwarn("Partial segment at 0x%jx data checksum"
                      " mismatch: given 0x%x, computed 0x%x\n",
-                     pseg_addr, sp->ss_datasum, ccksum);
+                     (uintmax_t)pseg_addr, sp->ss_datasum, ccksum);
                free(datap);
                return 0;
        }
diff -r fff3bcb55900 -r bffd3f803753 sbin/fsck_lfs/setup.c
--- a/sbin/fsck_lfs/setup.c     Sun Aug 02 18:08:12 2015 +0000
+++ b/sbin/fsck_lfs/setup.c     Sun Aug 02 18:10:07 2015 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: setup.c,v 1.50 2015/08/02 17:56:24 dholland Exp $ */
+/* $NetBSD: setup.c,v 1.51 2015/08/02 18:10:08 dholland Exp $ */
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -96,7 +96,7 @@
 #include "fsutil.h"
 
 extern u_int32_t cksum(void *, size_t);
-static uint64_t calcmaxfilesize(int);
+static uint64_t calcmaxfilesize(unsigned);
 
 ulfs_daddr_t *din_table;
 SEGUSE *seg_table;
@@ -118,11 +118,12 @@
  * calculate the maximum file size allowed with the specified block shift.
  */
 static uint64_t
-calcmaxfilesize(int bshift)
+calcmaxfilesize(unsigned bshift)
 {
        uint64_t nptr; /* number of block pointers per block */
        uint64_t maxblock;
 
+       /* XXX ondisk32 */
        nptr = (1 << bshift) / sizeof(uint32_t);
        maxblock = ULFS_NDADDR + nptr + nptr * nptr + nptr * nptr * nptr;
 
@@ -237,8 +238,8 @@
                int bc;
 
                if (debug)
-                       pwarn("adjusting offset, serial for -i 0x%lx\n",
-                               (unsigned long)idaddr);
+                       pwarn("adjusting offset, serial for -i 0x%jx\n",
+                               (uintmax_t)idaddr);
                tdaddr = lfs_sntod(fs, lfs_dtosn(fs, idaddr));
                if (lfs_sntod(fs, lfs_dtosn(fs, tdaddr)) == tdaddr) {
                        if (tdaddr == lfs_sb_gets0addr(fs))
@@ -265,8 +266,8 @@
                                                   sizeof(sp->ss_sumsum))) {
                                brelse(bp, 0);
                                if (debug)
-                                       printf("bad cksum at %x\n",
-                                              (unsigned)tdaddr);
+                                       printf("bad cksum at %jx\n",
+                                              (uintmax_t)tdaddr);
                                break;
                        }
                        fp = (FINFO *)(sp + 1);
@@ -311,9 +312,9 @@
                ++fs->lfs_nactive;
                lfs_sb_setnextseg(fs, lfs_sntod(fs, sn));
                if (debug) {
-                       pwarn("offset = 0x%" PRIx32 ", serial = %" PRIu64 "\n",
+                       pwarn("offset = 0x%" PRIx64 ", serial = %" PRIu64 "\n",
                                lfs_sb_getoffset(fs), lfs_sb_getserial(fs));
-                       pwarn("curseg = %" PRIx32 ", nextseg = %" PRIx32 "\n",
+                       pwarn("curseg = %" PRIx64 ", nextseg = %" PRIx64 "\n",
                                lfs_sb_getcurseg(fs), lfs_sb_getnextseg(fs));
                }
 
@@ -381,9 +382,9 @@
        }
        if (lfs_sb_getmaxfilesize(fs) != maxfilesize) {
                pwarn(
-                   "INCORRECT MAXFILESIZE=%llu IN SUPERBLOCK (SHOULD BE %llu WITH BSHIFT %u)",
-                   (unsigned long long) lfs_sb_getmaxfilesize(fs),
-                   (unsigned long long) maxfilesize, lfs_sb_getbshift(fs));
+                   "INCORRECT MAXFILESIZE=%ju IN SUPERBLOCK (SHOULD BE %ju WITH BSHIFT %u)",
+                   (uintmax_t) lfs_sb_getmaxfilesize(fs),
+                   (uintmax_t) maxfilesize, lfs_sb_getbshift(fs));
                if (preen)
                        printf(" (FIXED)\n");
                if (preen || reply("FIX") == 1) {
diff -r fff3bcb55900 -r bffd3f803753 sbin/newfs_lfs/make_lfs.c
--- a/sbin/newfs_lfs/make_lfs.c Sun Aug 02 18:08:12 2015 +0000
+++ b/sbin/newfs_lfs/make_lfs.c Sun Aug 02 18:10:07 2015 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: make_lfs.c,v 1.35 2015/08/02 18:08:12 dholland Exp $   */
+/*     $NetBSD: make_lfs.c,v 1.36 2015/08/02 18:10:08 dholland Exp $   */
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
 #if 0
 static char sccsid[] = "@(#)lfs.c      8.5 (Berkeley) 5/24/95";
 #else
-__RCSID("$NetBSD: make_lfs.c,v 1.35 2015/08/02 18:08:12 dholland Exp $");
+__RCSID("$NetBSD: make_lfs.c,v 1.36 2015/08/02 18:10:08 dholland Exp $");
 #endif
 #endif /* not lint */
 
@@ -209,6 +209,7 @@
        uint64_t nptr; /* number of block pointers per block */
        uint64_t maxblock;
 
+       /* XXX ondisk32 */
        nptr = (1 << bshift) / sizeof(uint32_t);
        maxblock = ULFS_NDADDR + nptr + nptr * nptr + nptr * nptr * nptr;
 
diff -r fff3bcb55900 -r bffd3f803753 sys/ufs/lfs/lfs.h
--- a/sys/ufs/lfs/lfs.h Sun Aug 02 18:08:12 2015 +0000
+++ b/sys/ufs/lfs/lfs.h Sun Aug 02 18:10:07 2015 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: lfs.h,v 1.168 2015/08/02 18:08:13 dholland Exp $       */
+/*     $NetBSD: lfs.h,v 1.169 2015/08/02 18:10:08 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  */
@@ -554,7 +554,7 @@
        u_int32_t ss_sumsum;            /* 0: check sum of summary block */
        u_int32_t ss_datasum;           /* 4: check sum of data */
        u_int32_t ss_magic;             /* 8: segment summary magic number */
-       int32_t   ss_next;              /* 12: next segment */
+       int32_t   ss_next;              /* 12: next segment (disk address) */
        u_int32_t ss_ident;             /* 16: roll-forward fsid */
 #define ss_ocreate ss_ident /* ident is where create was in v1 */
        u_int16_t ss_nfinfo;            /* 20: number of file info structures */
@@ -587,7 +587,7 @@
        u_int32_t dlfs_frag;      /* 28: number of frags in a block in fs */
 
 /* Checkpoint region. */
-       u_int32_t dlfs_freehd;    /* 32: start of the free list */
+       u_int32_t dlfs_freehd;    /* 32: start of the free inode list */
        int32_t   dlfs_bfree;     /* 36: number of free frags */
        u_int32_t dlfs_nfiles;    /* 40: number of allocated inodes */
        int32_t   dlfs_avail;     /* 44: blocks available for writing */
@@ -730,7 +730,7 @@
        int lfs_wrappass;               /* Allow first log wrap requester to pass */
        int lfs_wrapstatus;             /* Wrap status */
        int lfs_reclino;                /* Inode being reclaimed */
-       int lfs_startseg;               /* Segment we started writing at */
+       daddr_t lfs_startseg;           /* Segment we started writing at */
        LIST_HEAD(, segdelta) lfs_segdhd;       /* List of pending trunc accounting events */
 
 #ifdef _KERNEL
diff -r fff3bcb55900 -r bffd3f803753 sys/ufs/lfs/lfs_accessors.h



Home | Main Index | Thread Index | Old Index