Skip to content

fuse: Remove unlock_request/lock_request#121

Merged
bsbernd merged 1 commit intoredfs-rhel10_0from
unlock-lock-redfs-rhel10_0
Mar 10, 2026
Merged

fuse: Remove unlock_request/lock_request#121
bsbernd merged 1 commit intoredfs-rhel10_0from
unlock-lock-redfs-rhel10_0

Conversation

@bsbernd
Copy link
Collaborator

@bsbernd bsbernd commented Mar 10, 2026

This is a DDN patch only, as unlock_request()/lock_request() solve a deadlock issue for specially designed file systems, see Documentation/filesystems/fuse.rst, in the section

Scenario 2 - Tricky deadlock

This one needs a carefully crafted filesystem. It's a variation on the above, only the call back to the filesystem is not explicit, but is caused by a pagefault. ::

| Kamikaze filesystem thread 1 | Kamikaze filesystem thread 2

In redfsd we do our best to not cause any kind of user issues and just want to be as fast as possible. Hence, we do not need the per page unlock/lock checks.
Given that fuse is a generic file system, this can be a DDN commit only for now, until we find a better generic solution. The unlock_request/lock_request functions have been replaced by check_req_aborted(), which is run once per copied argument.

(cherry picked from commit dc7fa1c)

This is a DDN patch only, as unlock_request()/lock_request() solve
a deadlock issue for specially designed file systems,
see Documentation/filesystems/fuse.rst, in the section

**Scenario 2 - Tricky deadlock**

This one needs a carefully crafted filesystem.  It's a variation on
the above, only the call back to the filesystem is not explicit,
but is caused by a pagefault. ::

 |  Kamikaze filesystem thread 1      |  Kamikaze filesystem thread 2

In redfsd we do our best to not cause any kind of user issues
and just want to be as fast as possible. Hence, we do not
need the per page unlock/lock checks.
Given that fuse is a generic file system, this can be a DDN
commit only for now, until we find a better generic solution.
The unlock_request/lock_request functions have been replaced
by check_req_aborted(), which is run once per copied argument.

(cherry picked from commit dc7fa1c)
@bsbernd bsbernd requested a review from hbirth March 10, 2026 15:02
Copy link
Collaborator

@hbirth hbirth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a cherry pick

@bsbernd bsbernd merged commit fe672e8 into redfs-rhel10_0 Mar 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants