diff options
author | kib <kib@FreeBSD.org> | 2010-02-28 17:15:45 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2010-02-28 17:15:45 +0000 |
commit | 452113665587ed27ad543c49c84d142ef8bd5481 (patch) | |
tree | 45d054fb96d082033bfa0b26af9fb7f5a6b78d36 /sys/fs/msdosfs | |
parent | eb2b3c8672da21da1d5b72a0b44f0e8c3271cc1e (diff) | |
download | FreeBSD-src-452113665587ed27ad543c49c84d142ef8bd5481.zip FreeBSD-src-452113665587ed27ad543c49c84d142ef8bd5481.tar.gz |
Add assertions for FAT bitmap state.
Tested by: pho
MFC after: 3 weeks
Diffstat (limited to 'sys/fs/msdosfs')
-rw-r--r-- | sys/fs/msdosfs/msdosfs_fat.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/fs/msdosfs/msdosfs_fat.c b/sys/fs/msdosfs/msdosfs_fat.c index 02cb17e..c857b34 100644 --- a/sys/fs/msdosfs/msdosfs_fat.c +++ b/sys/fs/msdosfs/msdosfs_fat.c @@ -413,7 +413,12 @@ usemap_alloc(pmp, cn) { MSDOSFS_ASSERT_MP_LOCKED(pmp); + + KASSERT((pmp->pm_inusemap[cn / N_INUSEBITS] & (1 << (cn % N_INUSEBITS))) + == 0, ("Allocating used sector %ld %ld %x", cn, cn % N_INUSEBITS, + (unsigned)pmp->pm_inusemap[cn / N_INUSEBITS])); pmp->pm_inusemap[cn / N_INUSEBITS] |= 1 << (cn % N_INUSEBITS); + KASSERT(pmp->pm_freeclustercount > 0, ("usemap_alloc: too little")); pmp->pm_freeclustercount--; } @@ -425,6 +430,9 @@ usemap_free(pmp, cn) MSDOSFS_ASSERT_MP_LOCKED(pmp); pmp->pm_freeclustercount++; + KASSERT((pmp->pm_inusemap[cn / N_INUSEBITS] & (1 << (cn % N_INUSEBITS))) + != 0, ("Freeing unused sector %ld %ld %x", cn, cn % N_INUSEBITS, + (unsigned)pmp->pm_inusemap[cn / N_INUSEBITS])); pmp->pm_inusemap[cn / N_INUSEBITS] &= ~(1 << (cn % N_INUSEBITS)); } |