[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.