diff --git a/sys/fs/msdosfs/bpb.h b/sys/fs/msdosfs/bpb.h index c9bf27cdc693..addacd22fa15 100644 --- a/sys/fs/msdosfs/bpb.h +++ b/sys/fs/msdosfs/bpb.h @@ -167,6 +167,4 @@ struct fsinfo { u_int8_t fsinxtfree[4]; u_int8_t fsifill2[12]; u_int8_t fsisig3[4]; - u_int8_t fsifill3[508]; - u_int8_t fsisig4[4]; }; diff --git a/sys/fs/msdosfs/msdosfs_fat.c b/sys/fs/msdosfs/msdosfs_fat.c index c0b53a4e367b..b77f2d61fe58 100644 --- a/sys/fs/msdosfs/msdosfs_fat.c +++ b/sys/fs/msdosfs/msdosfs_fat.c @@ -376,7 +376,7 @@ updatefats(pmp, bp, fatbn) + ffs(pmp->pm_inusemap[cn / N_INUSEBITS] ^ (u_int)-1) - 1; } - if (bread(pmp->pm_devvp, pmp->pm_fsinfo, fsi_size(pmp), + if (bread(pmp->pm_devvp, pmp->pm_fsinfo, pmp->pm_bpcluster, NOCRED, &bpn) != 0) { /* * Ignore the error, but turn off FSInfo update for the future. diff --git a/sys/fs/msdosfs/msdosfs_vfsops.c b/sys/fs/msdosfs/msdosfs_vfsops.c index 3b53b0af8135..8c30fde389f5 100644 --- a/sys/fs/msdosfs/msdosfs_vfsops.c +++ b/sys/fs/msdosfs/msdosfs_vfsops.c @@ -644,14 +644,13 @@ mountmsdosfs(struct vnode *devvp, struct mount *mp, struct thread *td) if (pmp->pm_fsinfo) { struct fsinfo *fp; - if ((error = bread(devvp, pmp->pm_fsinfo, fsi_size(pmp), + if ((error = bread(devvp, pmp->pm_fsinfo, pmp->pm_bpcluster, NOCRED, &bp)) != 0) goto error_exit; fp = (struct fsinfo *)bp->b_data; if (!bcmp(fp->fsisig1, "RRaA", 4) && !bcmp(fp->fsisig2, "rrAa", 4) - && !bcmp(fp->fsisig3, "\0\0\125\252", 4) - && !bcmp(fp->fsisig4, "\0\0\125\252", 4)) { + && !bcmp(fp->fsisig3, "\0\0\125\252", 4)) { pmp->pm_nxtfree = getulong(fp->fsinxtfree); if (pmp->pm_nxtfree == 0xffffffff) pmp->pm_nxtfree = CLUST_FIRST; diff --git a/sys/fs/msdosfs/msdosfsmount.h b/sys/fs/msdosfs/msdosfsmount.h index f3c08d647206..088467951f12 100644 --- a/sys/fs/msdosfs/msdosfsmount.h +++ b/sys/fs/msdosfs/msdosfsmount.h @@ -210,12 +210,6 @@ struct msdosfs_fileno { ? roottobn((pmp), (dirofs)) \ : cntobn((pmp), (dirclu))) -/* - * Calculate fsinfo block size - */ -#define fsi_size(pmp) \ - (1024 << ((pmp)->pm_BlkPerSec >> 2)) - void msdosfs_fileno_init(struct mount *); void msdosfs_fileno_free(struct mount *); uint32_t msdosfs_fileno_map(struct mount *, uint64_t);