Commit f06bedf
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 <tigran.mkrtchyan@desy.de>
Link: https://lore.kernel.org/r/20250627071751.189663-1-tigran.mkrtchyan@desy.de
Fixes: 260f32a ("pNFS/flexfiles: Check the result of nfs4_pnfs_ds_connect")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>1 parent c262b44 commit f06bedf
2 files changed
+19
-13
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
762 | 762 | | |
763 | 763 | | |
764 | 764 | | |
765 | | - | |
| 765 | + | |
766 | 766 | | |
767 | 767 | | |
768 | 768 | | |
769 | 769 | | |
770 | 770 | | |
771 | 771 | | |
772 | | - | |
| 772 | + | |
773 | 773 | | |
774 | 774 | | |
775 | 775 | | |
776 | 776 | | |
777 | 777 | | |
778 | 778 | | |
779 | 779 | | |
780 | | - | |
| 780 | + | |
781 | 781 | | |
782 | 782 | | |
783 | | - | |
| 783 | + | |
784 | 784 | | |
785 | 785 | | |
786 | 786 | | |
| |||
942 | 942 | | |
943 | 943 | | |
944 | 944 | | |
945 | | - | |
| 945 | + | |
946 | 946 | | |
947 | 947 | | |
948 | 948 | | |
| |||
1867 | 1867 | | |
1868 | 1868 | | |
1869 | 1869 | | |
| 1870 | + | |
1870 | 1871 | | |
1871 | 1872 | | |
1872 | 1873 | | |
1873 | 1874 | | |
1874 | 1875 | | |
1875 | 1876 | | |
1876 | 1877 | | |
1877 | | - | |
| 1878 | + | |
| 1879 | + | |
1878 | 1880 | | |
| 1881 | + | |
1879 | 1882 | | |
1880 | 1883 | | |
1881 | 1884 | | |
| |||
1923 | 1926 | | |
1924 | 1927 | | |
1925 | 1928 | | |
1926 | | - | |
| 1929 | + | |
1927 | 1930 | | |
1928 | 1931 | | |
1929 | 1932 | | |
| |||
1945 | 1948 | | |
1946 | 1949 | | |
1947 | 1950 | | |
| 1951 | + | |
1948 | 1952 | | |
1949 | 1953 | | |
1950 | 1954 | | |
1951 | | - | |
| 1955 | + | |
| 1956 | + | |
1952 | 1957 | | |
| 1958 | + | |
1953 | 1959 | | |
1954 | 1960 | | |
1955 | 1961 | | |
| |||
2000 | 2006 | | |
2001 | 2007 | | |
2002 | 2008 | | |
2003 | | - | |
| 2009 | + | |
2004 | 2010 | | |
2005 | 2011 | | |
2006 | 2012 | | |
| |||
2043 | 2049 | | |
2044 | 2050 | | |
2045 | 2051 | | |
2046 | | - | |
| 2052 | + | |
2047 | 2053 | | |
2048 | 2054 | | |
2049 | 2055 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
370 | 370 | | |
371 | 371 | | |
372 | 372 | | |
373 | | - | |
| 373 | + | |
374 | 374 | | |
375 | 375 | | |
376 | 376 | | |
377 | | - | |
| 377 | + | |
378 | 378 | | |
379 | 379 | | |
380 | 380 | | |
| |||
418 | 418 | | |
419 | 419 | | |
420 | 420 | | |
421 | | - | |
| 421 | + | |
422 | 422 | | |
423 | 423 | | |
424 | 424 | | |
| |||
0 commit comments