[Bug 253424] fusefs: statfs doesn't set f_iosize ("optimal transfer block size")
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Thu Feb 11 01:21:11 UTC 2021
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253424
Bug ID: 253424
Summary: fusefs: statfs doesn't set f_iosize ("optimal transfer
block size")
Product: Base System
Version: 12.2-RELEASE
Hardware: Any
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: kern
Assignee: bugs at FreeBSD.org
Reporter: jmillikin at gmail.com
The FUSE_STATFS response includes fields `bsize` and `frsize`, matching the
Linux statfs fields of the same names:
* f_bsize: optimal transfer block size
* f_frsize: fragment size
The FreeBSD `struct statfs' equivalent fields are:
* f_bsize: filesystem fragment size
* f_iosize: optimal transfer block size
The fusefs driver function `fuse_vfsop_statfs()' copies the fragment size
correctly, but doesn't copy the transfer block size. This causes `statfs()'
calls on a FUSE filesystem to return an incorrect `(struct statfs*)->f_iosize'
value of 65535, instead of whatever the filesystem server returned.
Additionally, during testing, I noticed that the wrapper implementation of
`statvfs()' doesn't propagate `(struct statfs*)->f_namemax' -- it calls
`pathconf(path, _PC_NAME_MAX)' instead, which doesn't return correct values for
FUSE filesystems.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list