NFS: Add error message when U-Boot NFS version (V2) is not supported by NFS server
authorGuillaume GARDET <guillaume.gardet@free.fr>
Mon, 6 Jun 2016 13:11:45 +0000 (15:11 +0200)
committerJoe Hershberger <joe.hershberger@ni.com>
Tue, 21 Jun 2016 22:01:52 +0000 (17:01 -0500)
Signed-off-by: Guillaume GARDET <guillaume.gardet@free.fr>
Cc: joe.hershberger@ni.com
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
net/nfs.c

index 78968d82e94b25d5accec9b655c6bb37918dc38b..f60a0378187184e58cdc605e24d8ab4e044897a9 100644 (file)
--- a/net/nfs.c
+++ b/net/nfs.c
@@ -481,8 +481,23 @@ static int nfs_lookup_reply(uchar *pkt, unsigned len)
        if (rpc_pkt.u.reply.rstatus  ||
            rpc_pkt.u.reply.verifier ||
            rpc_pkt.u.reply.astatus  ||
-           rpc_pkt.u.reply.data[0])
+           rpc_pkt.u.reply.data[0]) {
+               switch (ntohl(rpc_pkt.u.reply.astatus)) {
+               case 0: /* Not an error */
+                       break;
+               case 2: /* Remote can't support NFS version */
+                       printf("*** ERROR: NFS version not supported: Requested: V%d, accepted: min V%d - max V%d\n",
+                              2,
+                              ntohl(rpc_pkt.u.reply.data[0]),
+                              ntohl(rpc_pkt.u.reply.data[1]));
+                       break;
+               default: /* Unknown error on 'accept state' flag */
+                       printf("*** ERROR: accept state error (%d)\n",
+                              ntohl(rpc_pkt.u.reply.astatus));
+                       break;
+               }
                return -1;
+       }
 
        memcpy(filefh, rpc_pkt.u.reply.data + 1, NFS_FHSIZE);