xprtrdma: Return an errno from rpcrdma_register_external()
authorChuck Lever <chuck.lever@oracle.com>
Sun, 9 Nov 2014 01:14:12 +0000 (20:14 -0500)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Tue, 25 Nov 2014 18:39:20 +0000 (13:39 -0500)
The RPC/RDMA send_request method and the chunk registration code
expects an errno from the registration function. This allows
the upper layers to distinguish between a recoverable failure
(for example, temporary memory exhaustion) and a hard failure
(for example, a bug in the registration logic).

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
net/sunrpc/xprtrdma/verbs.c

index 61c41298b4ea7b09b727548bb1a00d71b60d50b9..6ea29420f0acb1ce204851496efdd897ec17a98a 100644 (file)
@@ -1918,10 +1918,10 @@ rpcrdma_register_external(struct rpcrdma_mr_seg *seg,
                break;
 
        default:
-               return -1;
+               return -EIO;
        }
        if (rc)
-               return -1;
+               return rc;
 
        return nsegs;
 }