Page MenuHomeFreeBSD

fusefs: fix an interaction between copy_file_range and mmap
ClosedPublic

Authored by asomers on Jan 13 2024, 10:43 PM.
Tags
None
Referenced Files
F115745160: D43451.diff
Mon, Apr 28, 1:17 AM
Unknown Object (File)
Wed, Apr 23, 12:49 PM
Unknown Object (File)
Mon, Apr 21, 2:59 AM
Unknown Object (File)
Fri, Apr 18, 4:13 PM
Unknown Object (File)
Feb 22 2025, 2:24 PM
Unknown Object (File)
Feb 22 2025, 1:55 PM
Unknown Object (File)
Feb 22 2025, 1:41 PM
Unknown Object (File)
Feb 4 2025, 11:13 PM
Subscribers

Details

Summary

If a copy_file_range operation tries to read from a page that was
previously written via mmap, that page must be flushed first.

MFC after: 2 weeks

Test Plan

two test cases added to the fusefs test suite

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 55431
Build 52320: arc lint + arc unit

Event Timeline

sys/fs/fuse/fuse_vnops.c
912

Indent is strange.

I suggest to use (newly added) vnode_pager_clear_sync() instead, I do not think that possible optimization of flushing a range is significant there.

  • Use vnode_pager_clean_sync
This revision is now accepted and ready to land.Jan 15 2024, 9:53 PM