diff options
author | 2016-04-26 18:37:02 +0000 | |
---|---|---|
committer | 2016-04-26 18:37:02 +0000 | |
commit | f28dec03d114e4a09d295f18e38402d6215a0bbe (patch) | |
tree | 2da439041a392e1e81cd47c1d2cc32c999ff7af9 /sys/miscfs | |
parent | unwanted .El; (diff) | |
download | wireguard-openbsd-f28dec03d114e4a09d295f18e38402d6215a0bbe.tar.xz wireguard-openbsd-f28dec03d114e4a09d295f18e38402d6215a0bbe.zip |
Populate all necessary statfs members in .vfs_statfs. cd9660, udf,
msdosfs and nfsv2 don't set f_namemax. ntfs and ext2fs don't set
f_namemeax and f_favail. fusefs doesn't set f_mntfromspec, f_favail and
f_iosize. Also, make all filesystems use copy_statfs_info(), so that all
statfs information is filled in correctly for the (sb != &mp->mnt-stat)
case.
ok stefan
Diffstat (limited to 'sys/miscfs')
-rw-r--r-- | sys/miscfs/fuse/fuse_vfsops.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/miscfs/fuse/fuse_vfsops.c b/sys/miscfs/fuse/fuse_vfsops.c index 9f9541bbb5d..36584775d63 100644 --- a/sys/miscfs/fuse/fuse_vfsops.c +++ b/sys/miscfs/fuse/fuse_vfsops.c @@ -1,4 +1,4 @@ -/* $OpenBSD: fuse_vfsops.c,v 1.20 2016/03/27 11:39:37 bluhm Exp $ */ +/* $OpenBSD: fuse_vfsops.c,v 1.21 2016/04/26 18:37:02 natano Exp $ */ /* * Copyright (c) 2012-2013 Sylvestre Gallon <ccna.syl@gmail.com> * @@ -111,7 +111,9 @@ fusefs_mount(struct mount *mp, const char *path, void *data, bzero(mp->mnt_stat.f_mntonname, MNAMELEN); strlcpy(mp->mnt_stat.f_mntonname, path, MNAMELEN); bzero(mp->mnt_stat.f_mntfromname, MNAMELEN); - bcopy("fusefs", mp->mnt_stat.f_mntfromname, sizeof("fusefs")); + strlcpy(mp->mnt_stat.f_mntfromname, "fusefs", MNAMELEN); + bzero(mp->mnt_stat.f_mntfromspec, MNAMELEN); + strlcpy(mp->mnt_stat.f_mntfromspec, "fusefs", MNAMELEN); fuse_device_set_fmp(fmp, 1); fbuf = fb_setup(0, 0, FBT_INIT, p); @@ -204,6 +206,8 @@ fusefs_statfs(struct mount *mp, struct statfs *sbp, struct proc *p) fmp = VFSTOFUSEFS(mp); + copy_statfs_info(sbp, mp); + if (fmp->sess_init) { fbuf = fb_setup(0, FUSE_ROOT_ID, FBT_STATFS, p); @@ -219,7 +223,9 @@ fusefs_statfs(struct mount *mp, struct statfs *sbp, struct proc *p) sbp->f_blocks = fbuf->fb_stat.f_blocks; sbp->f_files = fbuf->fb_stat.f_files; sbp->f_ffree = fbuf->fb_stat.f_ffree; + sbp->f_favail = fbuf->fb_stat.f_favail; sbp->f_bsize = fbuf->fb_stat.f_frsize; + sbp->f_iosize = fbuf->fb_stat.f_bsize; sbp->f_namemax = fbuf->fb_stat.f_namemax; fb_delete(fbuf); } else { @@ -227,8 +233,10 @@ fusefs_statfs(struct mount *mp, struct statfs *sbp, struct proc *p) sbp->f_bfree = 0; sbp->f_blocks = 0; sbp->f_ffree = 0; + sbp->f_favail = 0; sbp->f_files = 0; sbp->f_bsize = 0; + sbp->f_iosize = 0; sbp->f_namemax = 0; } |