/[base]
ViewVC logotype

Revision 359214


Jump to revision: Previous Next
Author: asomers
Date: Sun Mar 22 15:24:25 2020 UTC (4 years, 3 months ago)
Changed paths: 11
Log Message:
MFC r358867:

fusefs: avoid cache corruption with buggy fuse servers

The FUSE protocol allows the client (kernel) to cache a file's size, if the
server (userspace daemon) allows it. A well-behaved daemon obviously should
not change a file's size while a client has it cached. But a buggy daemon
might. If the kernel ever detects that that has happened, then it should
invalidate the entire cache for that file. Previously, we would not only
cache stale data, but in the case of a file extension while we had the size
cached, we accidentally extended the cache with zeros.

PR:		244178
Reported by:	Ben RUBSON <ben.rubson@gmx.com>
Reviewed by:	cem
Differential Revision:	https://reviews.freebsd.org/D24012


Changed paths

Path Details
Directorystable/12/ modified , props changed
Directorystable/12/sys/fs/fuse/fuse_internal.c modified , text changed
Directorystable/12/sys/fs/fuse/fuse_node.c modified , text changed
Directorystable/12/sys/fs/fuse/fuse_node.h modified , text changed
Directorystable/12/sys/fs/fuse/fuse_vnops.c modified , text changed
Directorystable/12/tests/sys/fs/fusefs/Makefile modified , text changed
Directorystable/12/tests/sys/fs/fusefs/cache.cc
(Copied from head/tests/sys/fs/fusefs/cache.cc, r358867)
added
Directorystable/12/tests/sys/fs/fusefs/getattr.cc modified , text changed
Directorystable/12/tests/sys/fs/fusefs/io.cc modified , text changed
Directorystable/12/tests/sys/fs/fusefs/utils.cc modified , text changed
Directorystable/12/tests/sys/fs/fusefs/utils.hh modified , text changed

  ViewVC Help
Powered by ViewVC 1.1.27