]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
fusefs: implement VOP_BMAP
authorasomers <asomers@FreeBSD.org>
Thu, 20 Jun 2019 17:08:21 +0000 (17:08 +0000)
committerasomers <asomers@FreeBSD.org>
Thu, 20 Jun 2019 17:08:21 +0000 (17:08 +0000)
commit035a467e9b29fadbcf52f739b980ff88bd941788
treecf3d95949f502941a6a58ed5627910d01878a633
parent53a284d69f59cfbe0b1b0e8abf4bba3a1708143b
fusefs: implement VOP_BMAP

If the fuse daemon supports FUSE_BMAP, then use that for the block mapping.
Otherwise, use the same technique used by vop_stdbmap.  Report large values
for runp and runb in order to maximize read clustering and minimize upcalls,
even if we don't know the true layout.

The major result of this change is that sequential reads to FUSE files will
now usually happen 128KB at a time instead of 64KB.

Sponsored by: The FreeBSD Foundation
sys/fs/fuse/fuse_internal.c
sys/fs/fuse/fuse_io.c
sys/fs/fuse/fuse_ipc.c
sys/fs/fuse/fuse_ipc.h
sys/fs/fuse/fuse_vnops.c
tests/sys/fs/fusefs/Makefile
tests/sys/fs/fusefs/bmap.cc [new file with mode: 0644]
tests/sys/fs/fusefs/mockfs.cc
tests/sys/fs/fusefs/mockfs.hh
tests/sys/fs/fusefs/read.cc
tests/sys/fs/fusefs/utils.cc