Downgrade FUSE minor version support and clarify comments

This commit is contained in:
Jinmou Li
2020-09-16 12:19:30 -07:00
committed by Andrei Vagin
parent 1d8029022e
commit e91c026672
4 changed files with 31 additions and 49 deletions
+9 -11
View File
@@ -86,16 +86,22 @@ type connection struct {
// attributeVersion is the version of connection's attributes.
attributeVersion uint64
// We target FUSE 7.23.
// The following FUSE_INIT flags are currently unsupported by this implementation:
// - FUSE_EXPORT_SUPPORT
// - FUSE_HANDLE_KILLPRIV
// - FUSE_POSIX_LOCKS: requires POSIX locks
// - FUSE_FLOCK_LOCKS: requires POSIX locks
// - FUSE_AUTO_INVAL_DATA: requires page caching eviction
// - FUSE_EXPLICIT_INVAL_DATA: requires page caching eviction
// - FUSE_DO_READDIRPLUS/FUSE_READDIRPLUS_AUTO: requires FUSE_READDIRPLUS implementation
// - FUSE_ASYNC_DIO
// - FUSE_POSIX_ACL: affects defaultPermissions, posixACL, xattr handler
// - FUSE_PARALLEL_DIROPS (7.25)
// - FUSE_HANDLE_KILLPRIV (7.26)
// - FUSE_POSIX_ACL: affects defaultPermissions, posixACL, xattr handler (7.26)
// - FUSE_ABORT_ERROR (7.27)
// - FUSE_CACHE_SYMLINKS (7.28)
// - FUSE_NO_OPENDIR_SUPPORT (7.29)
// - FUSE_EXPLICIT_INVAL_DATA: requires page caching eviction (7.30)
// - FUSE_MAP_ALIGNMENT (7.31)
// initialized after receiving FUSE_INIT reply.
// Until it's set, suspend sending FUSE requests.
@@ -182,19 +188,11 @@ type connection struct {
// Negotiated and only set in INIT.
asyncRead bool
// abortErr is true if kernel need to return an unique read error after abort.
// Negotiated and only set in INIT.
abortErr bool
// writebackCache is true for write-back cache policy,
// false for write-through policy.
// Negotiated and only set in INIT.
writebackCache bool
// cacheSymlinks if filesystem needs to cache READLINK responses in page cache.
// Negotiated and only set in INIT.
cacheSymlinks bool
// bigWrites if doing multi-page cached writes.
// Negotiated and only set in INIT.
bigWrites bool
-2
View File
@@ -132,8 +132,6 @@ func (conn *connection) initProcessReply(out *linux.FUSEInitOut, hasSysAdminCap
conn.bigWrites = out.Flags&linux.FUSE_BIG_WRITES != 0
conn.dontMask = out.Flags&linux.FUSE_DONT_MASK != 0
conn.writebackCache = out.Flags&linux.FUSE_WRITEBACK_CACHE != 0
conn.cacheSymlinks = out.Flags&linux.FUSE_CACHE_SYMLINKS != 0
conn.abortErr = out.Flags&linux.FUSE_ABORT_ERROR != 0
// TODO(gvisor.dev/issue/3195): figure out how to use TimeGran (0 < TimeGran <= fuseMaxTimeGranNs).
@@ -65,11 +65,6 @@ func (r *fuseInitRes) UnmarshalBytes(src []byte) {
out.MaxPages = uint16(usermem.ByteOrder.Uint16(src[:2]))
src = src[2:]
}
// Introduced in FUSE kernel version 7.31.
if len(src) >= 2 {
out.MapAlignment = uint16(usermem.ByteOrder.Uint16(src[:2]))
src = src[2:]
}
}
// SizeBytes is the size of the payload of the FUSE_INIT response.