diff options
author | Amir Goldstein <amir73il@gmail.com> | 2024-04-07 18:57:56 +0300 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2024-04-15 10:12:03 +0200 |
commit | 4864a6dd8320ad856698f93009c89f66ccb1653f (patch) | |
tree | a831c7c145ece77057573844807b1829dc9f1fa2 /tools/perf/scripts/python/task-analyzer.py | |
parent | fec50db7033ea478773b159e0e2efb135270e3b7 (diff) |
fuse: fix wrong ff->iomode state changes from parallel dio write
There is a confusion with fuse_file_uncached_io_{start,end} interface.
These helpers do two things when called from passthrough open()/release():
1. Take/drop negative refcount of fi->iocachectr (inode uncached io mode)
2. State change ff->iomode IOM_NONE <-> IOM_UNCACHED (file uncached open)
The calls from parallel dio write path need to take a reference on
fi->iocachectr, but they should not be changing ff->iomode state, because
in this case, the fi->iocachectr reference does not stick around until file
release().
Factor out helpers fuse_inode_uncached_io_{start,end}, to be used from
parallel dio write path and rename fuse_file_*cached_io_{start,end} helpers
to fuse_file_*cached_io_{open,release} to clarify the difference.
Fixes: 205c1d802683 ("fuse: allow parallel dio writes with FUSE_DIRECT_IO_ALLOW_MMAP")
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'tools/perf/scripts/python/task-analyzer.py')
0 files changed, 0 insertions, 0 deletions