diff options
author | Chuck Lever <[email protected]> | 2023-12-16 11:57:43 -0500 |
---|---|---|
committer | Chuck Lever <[email protected]> | 2023-12-18 11:22:16 -0500 |
commit | 862bee84d77fa01cc8929656ae77781abf917863 (patch) | |
tree | d7d05caae5c9b58be90ccb1e5ba7877203bf8b78 /scripts/generate_rust_analyzer.py | |
parent | 1bd773b4f0c90123af19a853244be61518ae0556 (diff) |
NFSD: Revert 6c41d9a9bd0298002805758216a9c44e38a8500d
For some reason, the wait_on_bit() in nfsd4_deleg_getattr_conflict()
is waiting forever, preventing a clean server shutdown. The
requesting client might also hang waiting for a reply to the
conflicting GETATTR.
Invoking wait_on_bit() in an nfsd thread context is a hazard. The
correct fix is to replace this wait_on_bit() call site with a
mechanism that defers the conflicting GETATTR until the CB_GETATTR
completes or is known to have failed.
That will require some surgery and extended testing and it's late
in the v6.7-rc cycle, so I'm reverting now in favor of trying again
in a subsequent kernel release.
This is my fault: I should have recognized the ramifications of
calling wait_on_bit() in here before accepting this patch.
Thanks to Dai Ngo <[email protected]> for diagnosing the issue.
Reported-by: Wolfgang Walter <[email protected]>
Closes: https://lore.kernel.org/linux-nfs/[email protected]/
Signed-off-by: Chuck Lever <[email protected]>
Diffstat (limited to 'scripts/generate_rust_analyzer.py')
0 files changed, 0 insertions, 0 deletions