Date: Thu, 11 Feb 2021 01:21:11 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 253424] fusefs: statfs doesn't set f_iosize ("optimal transfer block size") Message-ID: <bug-253424-227@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D253424 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@FreeBSD.org Reporter: jmillikin@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_iosi= ze' 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. --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-253424-227>