diff options
author | 2025-06-19 11:02:21 -0400 | |
---|---|---|
committer | 2025-06-23 11:01:16 -0400 | |
commit | c01776287414ca43412d1319d2877cbad65444ac (patch) | |
tree | fd06f5bb4f6b98c062d3819cfa5f94972887160f /rust/pin-init/internal/src | |
parent | nfs: Clean up /proc/net/rpc/nfs when nfs_fs_proc_net_init() fails. (diff) | |
download | wireguard-linux-c01776287414ca43412d1319d2877cbad65444ac.tar.xz wireguard-linux-c01776287414ca43412d1319d2877cbad65444ac.zip |
NFSv4/pNFS: Fix a race to wake on NFS_LAYOUT_DRAIN
We found a few different systems hung up in writeback waiting on the same
page lock, and one task waiting on the NFS_LAYOUT_DRAIN bit in
pnfs_update_layout(), however the pnfs_layout_hdr's plh_outstanding count
was zero.
It seems most likely that this is another race between the waiter and waker
similar to commit ed0172af5d6f ("SUNRPC: Fix a race to wake a sync task").
Fix it up by applying the advised barrier.
Fixes: 880265c77ac4 ("pNFS: Avoid a live lock condition in pnfs_update_layout()")
Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
Diffstat (limited to 'rust/pin-init/internal/src')
0 files changed, 0 insertions, 0 deletions