static int ntfs_statfs(struct mount *mp, struct statfs *sbp, struct ucred *cred) { struct ntfsmount *ntmp = VFSTONTFS(mp); u_int64_t mftallocated; dprintf(("ntfs_statfs():\n")); mftallocated = VTOF(ntmp->ntm_sysvn[NTFS_MFTINO])->f_allocated; sbp->f_type = mp->mnt_vfc->vfc_typenum; sbp->f_bsize = ntmp->ntm_bps; sbp->f_iosize = ntmp->ntm_bps * ntmp->ntm_spc; sbp->f_blocks = ntmp->ntm_bootfile.bf_spv; sbp->f_bfree = sbp->f_bavail = ntfs_cntobn(ntmp->ntm_cfree); sbp->f_ffree = sbp->f_bfree / ntmp->ntm_bpmftrec; sbp->f_files = mftallocated / ntfs_bntob(ntmp->ntm_bpmftrec) + sbp->f_ffree; if (sbp != &mp->mnt_stat) { bcopy((caddr_t)mp->mnt_stat.f_mntfromname, (caddr_t)&sbp->f_mntfromname[0], MNAMELEN); } sbp->f_flags = mp->mnt_flag; return (0); }
static int ntfs_statvfs( struct mount *mp, struct statvfs *sbp) { struct ntfsmount *ntmp = VFSTONTFS(mp); u_int64_t mftallocated; dprintf(("ntfs_statvfs():\n")); mftallocated = VTOF(ntmp->ntm_sysvn[NTFS_MFTINO])->f_allocated; sbp->f_bsize = ntmp->ntm_bps; sbp->f_frsize = sbp->f_bsize; /* XXX */ sbp->f_iosize = ntmp->ntm_bps * ntmp->ntm_spc; sbp->f_blocks = ntmp->ntm_bootfile.bf_spv; sbp->f_bfree = sbp->f_bavail = ntfs_cntobn(ntmp->ntm_cfree); sbp->f_ffree = sbp->f_favail = sbp->f_bfree / ntmp->ntm_bpmftrec; sbp->f_files = mftallocated / ntfs_bntob(ntmp->ntm_bpmftrec) + sbp->f_ffree; sbp->f_fresvd = sbp->f_bresvd = 0; /* XXX */ sbp->f_flag = mp->mnt_flag; copy_statvfs_info(sbp, mp); return (0); }