The branch main has been updated by mckusick:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=677023529d6a46da52ed780eb299c6754a75f6ef

commit 677023529d6a46da52ed780eb299c6754a75f6ef
Author:     Kirk McKusick <[email protected]>
AuthorDate: 2023-08-11 05:38:56 +0000
Commit:     Kirk McKusick <[email protected]>
CommitDate: 2023-08-11 05:39:35 +0000

    Cleanups to UFS/FFS ffs_checkblk().
    
    Rename to ffs_checkfreeblk() to better describe that it is checking
    to find out if a block or fragment is free. Clarify its implementation.
    
    No functional change intended.
    
    MFC-after:    1 week
    Sponsored-by: The FreeBSD Foundation
---
 sys/ufs/ffs/ffs_alloc.c | 44 +++++++++++++++++++++++---------------------
 1 file changed, 23 insertions(+), 21 deletions(-)

diff --git a/sys/ufs/ffs/ffs_alloc.c b/sys/ufs/ffs/ffs_alloc.c
index f6bf4c1dadc0..166c5bc7c65c 100644
--- a/sys/ufs/ffs/ffs_alloc.c
+++ b/sys/ufs/ffs/ffs_alloc.c
@@ -114,7 +114,7 @@ static void ffs_blkfree_cg(struct ufsmount *, struct fs *,
                    struct vnode *, ufs2_daddr_t, long, ino_t,
                    struct workhead *);
 #ifdef INVARIANTS
-static int     ffs_checkblk(struct inode *, ufs2_daddr_t, long);
+static int     ffs_checkfreeblk(struct inode *, ufs2_daddr_t, long);
 #endif
 static ufs2_daddr_t ffs_clusteralloc(struct inode *, uint64_t, ufs2_daddr_t,
                                  int);
@@ -600,7 +600,7 @@ ffs_reallocblks_ufs1(
        end_lbn = start_lbn + len - 1;
 #ifdef INVARIANTS
        for (i = 0; i < len; i++)
-               if (!ffs_checkblk(ip,
+               if (!ffs_checkfreeblk(ip,
                   dbtofsb(fs, buflist->bs_children[i]->b_blkno), fs->fs_bsize))
                        panic("ffs_reallocblks: unallocated block 1");
        for (i = 1; i < len; i++)
@@ -721,7 +721,7 @@ ffs_reallocblks_ufs1(
                        soff = -i;
                }
 #ifdef INVARIANTS
-               if (!ffs_checkblk(ip,
+               if (!ffs_checkfreeblk(ip,
                   dbtofsb(fs, buflist->bs_children[i]->b_blkno), fs->fs_bsize))
                        panic("ffs_reallocblks: unallocated block 2");
                if (dbtofsb(fs, buflist->bs_children[i]->b_blkno) != *bap)
@@ -804,7 +804,8 @@ ffs_reallocblks_ufs1(
                            NOTRIM_KEY : SINGLETON_KEY);
                bp->b_blkno = fsbtodb(fs, blkno);
 #ifdef INVARIANTS
-               if (!ffs_checkblk(ip, dbtofsb(fs, bp->b_blkno), fs->fs_bsize))
+               if (!ffs_checkfreeblk(ip, dbtofsb(fs, bp->b_blkno),
+                   fs->fs_bsize))
                        panic("ffs_reallocblks: unallocated block 3");
 #endif
 #ifdef DIAGNOSTIC
@@ -865,7 +866,7 @@ ffs_reallocblks_ufs2(
        end_lbn = start_lbn + len - 1;
 #ifdef INVARIANTS
        for (i = 0; i < len; i++)
-               if (!ffs_checkblk(ip,
+               if (!ffs_checkfreeblk(ip,
                   dbtofsb(fs, buflist->bs_children[i]->b_blkno), fs->fs_bsize))
                        panic("ffs_reallocblks: unallocated block 1");
        for (i = 1; i < len; i++)
@@ -985,7 +986,7 @@ ffs_reallocblks_ufs2(
                        soff = -i;
                }
 #ifdef INVARIANTS
-               if (!ffs_checkblk(ip,
+               if (!ffs_checkfreeblk(ip,
                   dbtofsb(fs, buflist->bs_children[i]->b_blkno), fs->fs_bsize))
                        panic("ffs_reallocblks: unallocated block 2");
                if (dbtofsb(fs, buflist->bs_children[i]->b_blkno) != *bap)
@@ -1068,7 +1069,8 @@ ffs_reallocblks_ufs2(
                            NOTRIM_KEY : SINGLETON_KEY);
                bp->b_blkno = fsbtodb(fs, blkno);
 #ifdef INVARIANTS
-               if (!ffs_checkblk(ip, dbtofsb(fs, bp->b_blkno), fs->fs_bsize))
+               if (!ffs_checkfreeblk(ip, dbtofsb(fs, bp->b_blkno),
+                   fs->fs_bsize))
                        panic("ffs_reallocblks: unallocated block 3");
 #endif
 #ifdef DIAGNOSTIC
@@ -2285,7 +2287,7 @@ ffs_blkfree_cg(struct ufsmount *ump,
                printf("dev=%s, bno = %jd, bsize = %ld, size = %ld, fs = %s\n",
                    devtoname(dev), (intmax_t)bno, (long)fs->fs_bsize,
                    size, fs->fs_fsmnt);
-               panic("ffs_blkfree_cg: bad size");
+               panic("ffs_blkfree_cg: invalid size");
        }
 #endif
        if ((uint64_t)bno >= fs->fs_size) {
@@ -2748,11 +2750,11 @@ ffs_blkfree(struct ufsmount *ump,
 
 #ifdef INVARIANTS
 /*
- * Verify allocation of a block or fragment. Returns true if block or
- * fragment is allocated, false if it is free.
+ * Verify allocation of a block or fragment.
+ * Return 1 if block or fragment is free.
  */
 static int
-ffs_checkblk(struct inode *ip,
+ffs_checkfreeblk(struct inode *ip,
        ufs2_daddr_t bno,
        long size)
 {
@@ -2760,34 +2762,34 @@ ffs_checkblk(struct inode *ip,
        struct cg *cgp;
        struct buf *bp;
        ufs1_daddr_t cgbno;
-       int i, error, frags, free;
+       int i, error, frags, blkalloced;
        uint8_t *blksfree;
 
        fs = ITOFS(ip);
        if ((uint64_t)size > fs->fs_bsize || fragoff(fs, size) != 0) {
                printf("bsize = %ld, size = %ld, fs = %s\n",
                    (long)fs->fs_bsize, size, fs->fs_fsmnt);
-               panic("ffs_checkblk: bad size");
+               panic("ffs_checkfreeblk: bad size");
        }
        if ((uint64_t)bno >= fs->fs_size)
-               panic("ffs_checkblk: bad block %jd", (intmax_t)bno);
+               panic("ffs_checkfreeblk: too big block %jd", (intmax_t)bno);
        error = ffs_getcg(fs, ITODEVVP(ip), dtog(fs, bno), 0, &bp, &cgp);
        if (error)
-               panic("ffs_checkblk: cylinder group read failed");
+               panic("ffs_checkfreeblk: cylinder group read failed");
        blksfree = cg_blksfree(cgp);
        cgbno = dtogd(fs, bno);
        if (size == fs->fs_bsize) {
-               free = ffs_isblock(fs, blksfree, fragstoblks(fs, cgbno));
+               blkalloced = ffs_isblock(fs, blksfree, fragstoblks(fs, cgbno));
        } else {
                frags = numfrags(fs, size);
-               for (free = 0, i = 0; i < frags; i++)
+               for (blkalloced = 0, i = 0; i < frags; i++)
                        if (isset(blksfree, cgbno + i))
-                               free++;
-               if (free != 0 && free != frags)
-                       panic("ffs_checkblk: partially free fragment");
+                               blkalloced++;
+               if (blkalloced != 0 && blkalloced != frags)
+                       panic("ffs_checkfreeblk: partially free fragment");
        }
        brelse(bp);
-       return (!free);
+       return (blkalloced == 0);
 }
 #endif /* INVARIANTS */
 

Reply via email to