[Bug 272678] VFS: Incorrect data in read from concurrent write
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 24 Jul 2023 22:04:12 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272678 --- Comment #6 from commit-hook@FreeBSD.org --- A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=5b353925ff61b9ddb97bb453ba75278b578ed7d9 commit 5b353925ff61b9ddb97bb453ba75278b578ed7d9 Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2023-07-23 15:55:50 +0000 Commit: Konstantin Belousov <kib@FreeBSD.org> CommitDate: 2023-07-24 22:02:59 +0000 vnode read(2)/write(2): acquire rangelock regardless of do_vn_io_fault() To ensure atomicity of reads against parallel writes and truncates, vnode lock was not enough at least since introduction of vn_io_fault(). That code only take rangelock when it was possible that vn_read() and vn_write() could drop the vnode lock. At least since the introduction of VOP_READ_PGCACHE() which generally does not lock the vnode at all, rangelocks become required even for filesystems that do not need vn_io_fault() workaround. For instance, tmpfs. PR: 272678 Analyzed and reviewed by: Andrew Gierth <andrew@tao11.riddles.org.uk> Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D41158 sys/kern/vfs_vnops.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) -- You are receiving this mail because: You are the assignee for the bug.