aboutsummaryrefslogtreecommitdiffstats
path: root/net/unix/af_unix.c
diff options
context:
space:
mode:
authorTigran Mkrtchyan <[email protected]>2025-06-27 07:17:51 +0000
committerTrond Myklebust <[email protected]>2025-07-22 12:10:17 +0000
commitf06bedfa62d57f7b67d44aacd6badad2e13a803f (patch)
treec0d25d63077aaf6a7310bbc6ca33813b1eb8fcec /net/unix/af_unix.c
parentNFS: drop __exit from nfs_exit_keyring (diff)
downloadkernel-f06bedfa62d57f7b67d44aacd6badad2e13a803f.tar.gz
kernel-f06bedfa62d57f7b67d44aacd6badad2e13a803f.zip
pNFS/flexfiles: don't attempt pnfs on fatal DS errors
When an applications get killed (SIGTERM/SIGINT) while pNFS client performs a connection to DS, client ends in an infinite loop of connect-disconnect. This source of the issue, it that flexfilelayoutdev#nfs4_ff_layout_prepare_ds gets an error on nfs4_pnfs_ds_connect with status ERESTARTSYS, which is set by rpc_signal_task, but the error is treated as transient, thus retried. The issue is reproducible with Ctrl+C the following script(there should be ~1000 files in a directory, client should must not have any connections to DSes): ``` echo 3 > /proc/sys/vm/drop_caches for i in * do head -1 $i done ``` The change aims to propagate the nfs4_ff_layout_prepare_ds error state to the caller that can decide whatever this is a retryable error or not. Signed-off-by: Tigran Mkrtchyan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Fixes: 260f32adb88d ("pNFS/flexfiles: Check the result of nfs4_pnfs_ds_connect") Signed-off-by: Trond Myklebust <[email protected]>
Diffstat (limited to 'net/unix/af_unix.c')
0 files changed, 0 insertions, 0 deletions