Commit 2db767d9 authored by Linus Torvalds's avatar Linus Torvalds

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"
parents 788c1da0 eb5b46fa
...@@ -71,8 +71,8 @@ const nfs4_stateid zero_stateid = { ...@@ -71,8 +71,8 @@ const nfs4_stateid zero_stateid = {
}; };
const nfs4_stateid invalid_stateid = { const nfs4_stateid invalid_stateid = {
{ {
.seqid = cpu_to_be32(0xffffffffU), /* Funky initialiser keeps older gcc versions happy */
.other = { 0 }, .data = { 0xff, 0xff, 0xff, 0xff, 0 },
}, },
.type = NFS4_INVALID_STATEID_TYPE, .type = NFS4_INVALID_STATEID_TYPE,
}; };
......
...@@ -1841,6 +1841,7 @@ call_bind_status(struct rpc_task *task) ...@@ -1841,6 +1841,7 @@ call_bind_status(struct rpc_task *task)
case -ECONNABORTED: case -ECONNABORTED:
case -ENOTCONN: case -ENOTCONN:
case -EHOSTDOWN: case -EHOSTDOWN:
case -ENETDOWN:
case -EHOSTUNREACH: case -EHOSTUNREACH:
case -ENETUNREACH: case -ENETUNREACH:
case -ENOBUFS: case -ENOBUFS:
...@@ -1917,6 +1918,7 @@ call_connect_status(struct rpc_task *task) ...@@ -1917,6 +1918,7 @@ call_connect_status(struct rpc_task *task)
/* fall through */ /* fall through */
case -ECONNRESET: case -ECONNRESET:
case -ECONNABORTED: case -ECONNABORTED:
case -ENETDOWN:
case -ENETUNREACH: case -ENETUNREACH:
case -EHOSTUNREACH: case -EHOSTUNREACH:
case -EADDRINUSE: case -EADDRINUSE:
...@@ -2022,6 +2024,7 @@ call_transmit_status(struct rpc_task *task) ...@@ -2022,6 +2024,7 @@ call_transmit_status(struct rpc_task *task)
*/ */
case -ECONNREFUSED: case -ECONNREFUSED:
case -EHOSTDOWN: case -EHOSTDOWN:
case -ENETDOWN:
case -EHOSTUNREACH: case -EHOSTUNREACH:
case -ENETUNREACH: case -ENETUNREACH:
case -EPERM: case -EPERM:
...@@ -2071,6 +2074,7 @@ call_bc_transmit(struct rpc_task *task) ...@@ -2071,6 +2074,7 @@ call_bc_transmit(struct rpc_task *task)
switch (task->tk_status) { switch (task->tk_status) {
case 0: case 0:
/* Success */ /* Success */
case -ENETDOWN:
case -EHOSTDOWN: case -EHOSTDOWN:
case -EHOSTUNREACH: case -EHOSTUNREACH:
case -ENETUNREACH: case -ENETUNREACH:
...@@ -2139,6 +2143,7 @@ call_status(struct rpc_task *task) ...@@ -2139,6 +2143,7 @@ call_status(struct rpc_task *task)
task->tk_status = 0; task->tk_status = 0;
switch(status) { switch(status) {
case -EHOSTDOWN: case -EHOSTDOWN:
case -ENETDOWN:
case -EHOSTUNREACH: case -EHOSTUNREACH:
case -ENETUNREACH: case -ENETUNREACH:
case -EPERM: case -EPERM:
......
...@@ -2440,7 +2440,9 @@ static void xs_tcp_setup_socket(struct work_struct *work) ...@@ -2440,7 +2440,9 @@ static void xs_tcp_setup_socket(struct work_struct *work)
*/ */
case -ECONNREFUSED: case -ECONNREFUSED:
case -ECONNRESET: case -ECONNRESET:
case -ENETDOWN:
case -ENETUNREACH: case -ENETUNREACH:
case -EHOSTUNREACH:
case -EADDRINUSE: case -EADDRINUSE:
case -ENOBUFS: case -ENOBUFS:
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment