--- a/sys/vfs/hpfs/hpfs_subr.c +++ b/sys/vfs/hpfs/hpfs_subr.c @@ -282,11 +282,13 @@ hpfs_cpinit ( while (cpicnt > 0) { error = bread(hpmp->hpm_devvp, dbtodoff(lsn), DEV_BSIZE, &bp); if (error) { brelse(bp); + kfree(hpmp->hpm_cpdblk, M_HPFSMNT); + hpmp->hpm_cpdblk = NULL; return (error); } @@ -298,10 +300,12 @@ hpfs_cpinit ( error = hpfs_cpload(hpmp, cpibp, cpdbp); if (error) { brelse(bp); + kfree(hpmp->hpm_cpdblk, M_HPFSMNT); + hpmp->hpm_cpdblk = NULL; return (error); }