--- msdosfs_fat.c.orig Wed Jun 16 11:16:37 2004 +++ msdosfs_fat.c Wed Jun 16 11:15:41 2004 @@ -434,8 +434,9 @@ for (cn = 0; cn < pmp->pm_maxcluster; cn += N_INUSEBITS) if (pmp->pm_inusemap[cn / N_INUSEBITS] != (u_int)-1) break; - pmp->pm_nxtfree = cn - + ffs(pmp->pm_inusemap[cn / N_INUSEBITS]^(u_int)-1) - 1; + pmp->pm_nxtfree = (cn < pmp->pm_maxcluster)? + (cn + ffs(pmp->pm_inusemap[cn / N_INUSEBITS]^(u_int)-1) - 1) + :0; } if (bread(pmp->pm_devvp, pmp->pm_fsinfo, fsi_size(pmp), NOCRED, &bpn) != 0) {