]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
fusefs: replace the fufh table with a linked list
authorasomers <asomers@FreeBSD.org>
Sun, 31 Mar 2019 03:19:10 +0000 (03:19 +0000)
committerasomers <asomers@FreeBSD.org>
Sun, 31 Mar 2019 03:19:10 +0000 (03:19 +0000)
commit1bc12f733519302e315d47ee49a8c0a6e88f261e
tree19946951fffc63d02af73b9266336145a4f26a61
parentd5384cd51f3816d3017d88347218357ab5577487
fusefs: replace the fufh table with a linked list

The FUSE protocol allows each open file descriptor to have a unique file
handle.  On FreeBSD, these file handles must all be stored in the vnode.
The old method (also used by OSX and OpenBSD) is to store them all in a
small array.  But that limits the total number that can be stored.  This
commit replaces the array with a linked list (a technique also used by
Illumos).  There is not yet any change in functionality, but this is the
first step to fixing several bugs.

PR: 236329, 236340, 236381, 236560, 236844
Discussed with: cem
Sponsored by: The FreeBSD Foundation
sys/fs/fuse/fuse_file.c
sys/fs/fuse/fuse_file.h
sys/fs/fuse/fuse_internal.c
sys/fs/fuse/fuse_node.c
sys/fs/fuse/fuse_node.h
sys/fs/fuse/fuse_vnops.c