diff options
| author | Joanne Koong <joannelkoong@gmail.com> | 2026-07-16 11:31:43 -0700 |
|---|---|---|
| committer | Miklos Szeredi <mszeredi@redhat.com> | 2026-07-17 13:06:35 +0200 |
| commit | 4ef7c8cc9894fccc7aa5fdaf6b39faa45c58c23e (patch) | |
| tree | 26c040d624ec6f51025990c3d64b42de34ee3d0d /tools/perf/scripts/python/bin | |
| parent | edb310bc27f0ad83e7fd558a3caf1a94ca511654 (diff) | |
fuse: use release/acquire for fch->initialized
fuse_chan_set_initialized() sets values for the connection state and
then sets fch->initialized to true, but lockless readers read
fch->initialized and if true, go to read the connection state values,
without using any barriers.
There are a few instances where this happens (fuse_uring_cmd() before
dispatching register / commit-and-fetch cmds, fuse_dev_do_wriite() for
handling notify retrieves, etc).
To make this as simple as possible, use release/acquire semantics for
writing/reading fch->initialized. Add the missing read barriers.
This is not marked for stable as these are not realistically reachable
on a well-behaved server, and buggy/malicious servers who trigger this
path fail benignly rather than crash or deadlock the kernel.
Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'tools/perf/scripts/python/bin')
0 files changed, 0 insertions, 0 deletions
