aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-12-01 20:04:20 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2017-12-01 20:04:20 -0500
commit2db767d9889cef087149a5eaa35c1497671fa40f (patch)
tree1d7dae11212066614b1fd1b3548f21eae9375250
parent788c1da05b73aee68ed98f05b577c308351f5619 (diff)
parenteb5b46faa693470681ec7c28cc2436edd1571198 (diff)
Merge tag 'nfs-for-4.15-2' of git://git.linux-nfs.org/projects/anna/linux-nfs
Pull NFS client fixes from Anna Schumaker: "These patches fix a problem with compiling using an old version of gcc, and also fix up error handling in the SUNRPC layer. - NFSv4: Ensure gcc 4.4.4 can compile initialiser for "invalid_stateid" - SUNRPC: Allow connect to return EHOSTUNREACH - SUNRPC: Handle ENETDOWN errors" * tag 'nfs-for-4.15-2' of git://git.linux-nfs.org/projects/anna/linux-nfs: SUNRPC: Handle ENETDOWN errors SUNRPC: Allow connect to return EHOSTUNREACH NFSv4: Ensure gcc 4.4.4 can compile initialiser for "invalid_stateid"
-rw-r--r--fs/nfs/nfs4state.c4
-rw-r--r--net/sunrpc/clnt.c5
-rw-r--r--net/sunrpc/xprtsock.c2
3 files changed, 9 insertions, 2 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 54fd56d715a8..e4f4a09ed9f4 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -71,8 +71,8 @@ const nfs4_stateid zero_stateid = {
71}; 71};
72const nfs4_stateid invalid_stateid = { 72const nfs4_stateid invalid_stateid = {
73 { 73 {
74 .seqid = cpu_to_be32(0xffffffffU), 74 /* Funky initialiser keeps older gcc versions happy */
75 .other = { 0 }, 75 .data = { 0xff, 0xff, 0xff, 0xff, 0 },
76 }, 76 },
77 .type = NFS4_INVALID_STATEID_TYPE, 77 .type = NFS4_INVALID_STATEID_TYPE,
78}; 78};
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index a801da812f86..e2a4184f3c5d 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -1841,6 +1841,7 @@ call_bind_status(struct rpc_task *task)
1841 case -ECONNABORTED: 1841 case -ECONNABORTED:
1842 case -ENOTCONN: 1842 case -ENOTCONN:
1843 case -EHOSTDOWN: 1843 case -EHOSTDOWN:
1844 case -ENETDOWN:
1844 case -EHOSTUNREACH: 1845 case -EHOSTUNREACH:
1845 case -ENETUNREACH: 1846 case -ENETUNREACH:
1846 case -ENOBUFS: 1847 case -ENOBUFS:
@@ -1917,6 +1918,7 @@ call_connect_status(struct rpc_task *task)
1917 /* fall through */ 1918 /* fall through */
1918 case -ECONNRESET: 1919 case -ECONNRESET:
1919 case -ECONNABORTED: 1920 case -ECONNABORTED:
1921 case -ENETDOWN:
1920 case -ENETUNREACH: 1922 case -ENETUNREACH:
1921 case -EHOSTUNREACH: 1923 case -EHOSTUNREACH:
1922 case -EADDRINUSE: 1924 case -EADDRINUSE:
@@ -2022,6 +2024,7 @@ call_transmit_status(struct rpc_task *task)
2022 */ 2024 */
2023 case -ECONNREFUSED: 2025 case -ECONNREFUSED:
2024 case -EHOSTDOWN: 2026 case -EHOSTDOWN:
2027 case -ENETDOWN:
2025 case -EHOSTUNREACH: 2028 case -EHOSTUNREACH:
2026 case -ENETUNREACH: 2029 case -ENETUNREACH:
2027 case -EPERM: 2030 case -EPERM:
@@ -2071,6 +2074,7 @@ call_bc_transmit(struct rpc_task *task)
2071 switch (task->tk_status) { 2074 switch (task->tk_status) {
2072 case 0: 2075 case 0:
2073 /* Success */ 2076 /* Success */
2077 case -ENETDOWN:
2074 case -EHOSTDOWN: 2078 case -EHOSTDOWN:
2075 case -EHOSTUNREACH: 2079 case -EHOSTUNREACH:
2076 case -ENETUNREACH: 2080 case -ENETUNREACH:
@@ -2139,6 +2143,7 @@ call_status(struct rpc_task *task)
2139 task->tk_status = 0; 2143 task->tk_status = 0;
2140 switch(status) { 2144 switch(status) {
2141 case -EHOSTDOWN: 2145 case -EHOSTDOWN:
2146 case -ENETDOWN:
2142 case -EHOSTUNREACH: 2147 case -EHOSTUNREACH:
2143 case -ENETUNREACH: 2148 case -ENETUNREACH:
2144 case -EPERM: 2149 case -EPERM:
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
index 9cc850c2719e..6d0cc3b8f932 100644
--- a/net/sunrpc/xprtsock.c
+++ b/net/sunrpc/xprtsock.c
@@ -2440,7 +2440,9 @@ static void xs_tcp_setup_socket(struct work_struct *work)
2440 */ 2440 */
2441 case -ECONNREFUSED: 2441 case -ECONNREFUSED:
2442 case -ECONNRESET: 2442 case -ECONNRESET:
2443 case -ENETDOWN:
2443 case -ENETUNREACH: 2444 case -ENETUNREACH:
2445 case -EHOSTUNREACH:
2444 case -EADDRINUSE: 2446 case -EADDRINUSE:
2445 case -ENOBUFS: 2447 case -ENOBUFS:
2446 /* 2448 /*