https://bugs.kde.org/show_bug.cgi?id=373574
Philippe Waroquiers changed:
What|Removed |Added
CC||philippe.waroquiers@skynet.
||be
--- Comment #3 from Philippe Waroquiers ---
I took a quick look at this problem.
I have to admit that I do not too much understand the logic used
to mark some syscall as SfMayBlock,
or mark them as SfMayBlock only if --sim-hints=fuse-compatible
or not marking them.
For example, sys_rename is FUSE_COMPATIBLE_MAY_BLOCK();
while sys_renameat is not marked.
I am guessing that depending on the fs (in particular, network file systems),
all/most file system operations might potentially block. See e.g. bug 278057
comment 2).
That being said, I think the problem you have is because PRE(sys_readlink)
is doing the complete work of the syscall to possibly have some
special logic needed to handle some /proc filenames.
When using fuse-compatible, the syscall is marked as SfMayBlock but that
is not expected when the PRE(sys_*) is doing all the work : effectively,
if the PRE(sys_*) is doing all the work, how can the syscall block later on ?
So, I think there are 2 ways to fix this:
* if this syscall cannot block, then we can just remove the
FUSE_COMPATIBLE_MAY_BLOCK.
* if the readlink syscall can really block, then it is not ok to
have the PRE(sys_readlink) doing the work. The PRE(sys_readlink)
should change the first argument when needed, let the async syscall
handling do the syscall, and then the POST(sys_readlink) should cleanup
the changed argument (assuming we need some dynamic memory for the
changed argument).
So, at this point, what is really needed is a better understanding of
the SfMayBlock logic ...
--
You are receiving this mail because:
You are watching all bug changes.