Page MenuHomeFreeBSD

D21317.id60973.diff
No OneTemporary

D21317.id60973.diff

Index: head/sys/kern/vfs_mount.c
===================================================================
--- head/sys/kern/vfs_mount.c
+++ head/sys/kern/vfs_mount.c
@@ -1831,12 +1831,15 @@
int
__vfs_statfs(struct mount *mp, struct statfs *sbp)
{
- int error;
- error = mp->mnt_op->vfs_statfs(mp, &mp->mnt_stat);
- if (sbp != &mp->mnt_stat)
- *sbp = mp->mnt_stat;
- return (error);
+ /*
+ * Set these in case the underlying filesystem fails to do so.
+ */
+ sbp->f_version = STATFS_VERSION;
+ sbp->f_namemax = NAME_MAX;
+ sbp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK;
+
+ return (mp->mnt_op->vfs_statfs(mp, sbp));
}
void
Index: head/sys/kern/vfs_syscalls.c
===================================================================
--- head/sys/kern/vfs_syscalls.c
+++ head/sys/kern/vfs_syscalls.c
@@ -248,7 +248,6 @@
static int
kern_do_statfs(struct thread *td, struct mount *mp, struct statfs *buf)
{
- struct statfs *sp;
int error;
if (mp == NULL)
@@ -262,17 +261,9 @@
if (error != 0)
goto out;
#endif
- /*
- * Set these in case the underlying filesystem fails to do so.
- */
- sp = &mp->mnt_stat;
- sp->f_version = STATFS_VERSION;
- sp->f_namemax = NAME_MAX;
- sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK;
- error = VFS_STATFS(mp, sp);
+ error = VFS_STATFS(mp, buf);
if (error != 0)
goto out;
- *buf = *sp;
if (priv_check(td, PRIV_VFS_GENERATION)) {
buf->f_fsid.val[0] = buf->f_fsid.val[1] = 0;
prison_enforce_statfs(td->td_ucred, mp, buf);
@@ -476,13 +467,6 @@
if (sfsp != NULL && count < maxcount) {
sp = &mp->mnt_stat;
/*
- * Set these in case the underlying filesystem
- * fails to do so.
- */
- sp->f_version = STATFS_VERSION;
- sp->f_namemax = NAME_MAX;
- sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK;
- /*
* If MNT_NOWAIT is specified, do not refresh
* the fsstat cache.
*/
@@ -4545,7 +4529,6 @@
int
kern_fhstatfs(struct thread *td, fhandle_t fh, struct statfs *buf)
{
- struct statfs *sp;
struct mount *mp;
struct vnode *vp;
int error;
@@ -4569,16 +4552,7 @@
if (error != 0)
goto out;
#endif
- /*
- * Set these in case the underlying filesystem fails to do so.
- */
- sp = &mp->mnt_stat;
- sp->f_version = STATFS_VERSION;
- sp->f_namemax = NAME_MAX;
- sp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK;
- error = VFS_STATFS(mp, sp);
- if (error == 0)
- *buf = *sp;
+ error = VFS_STATFS(mp, buf);
out:
vfs_unbusy(mp);
return (error);

File Metadata

Mime Type
text/plain
Expires
Mon, Oct 13, 3:34 AM (16 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
23655149
Default Alt Text
D21317.id60973.diff (2 KB)

Event Timeline