* Patch by Masami Komiya, 24 Feb 2004:
  Update NetBootFileXferSize in NFS code

* Patch by Scott McNutt, 24 Feb 2004:
  fix packet length in NFS code
diff --git a/net/nfs.c b/net/nfs.c
index 6f4a06a..069f072 100644
--- a/net/nfs.c
+++ b/net/nfs.c
@@ -66,6 +66,7 @@
 static __inline__ void
 store_block (uchar * src, unsigned offset, unsigned len)
 {
+	ulong newsize = offset + len;
 #ifdef CFG_DIRECT_FLASH_NFS
 	int i, rc = 0;
 
@@ -86,10 +87,12 @@
 		}
 	} else
 #endif /* CFG_DIRECT_FLASH_NFS */
-
 	{
 		(void)memcpy ((void *)(load_addr + offset), src, len);
 	}
+
+	if (NetBootFileXferSize < (offset+len))
+		NetBootFileXferSize = newsize;
 }
 
 static char*
@@ -539,8 +542,7 @@
 	printf ("%s\n", __FUNCTION__);
 #endif
 
-	rlen = (uchar *)&(rpc_pkt.u.reply.data[19]) - (uchar *)&(rpc_pkt.u.reply.id);
-	memcpy ((uchar *)&rpc_pkt, pkt, rlen);
+	memcpy ((uchar *)&rpc_pkt, pkt, len);
 
 	if (rpc_pkt.u.reply.rstatus  ||
 	    rpc_pkt.u.reply.verifier ||
@@ -613,6 +615,7 @@
 			puts ("*** ERROR: Cannot umount\n");
 			NetState = NETLOOP_FAIL;
 		} else {
+			puts ("\ndone\n");
 			NetState = NETLOOP_SUCCESS;
 		}
 		break;
@@ -658,9 +661,6 @@
 			NfsState = STATE_READLINK_REQ;
 			NfsSend ();
 		} else {
-			puts ("\ndone\n");
-			printf ("Bytes transferred = %d (%x hex)\n",
-				nfs_offset, nfs_offset);
 			NfsState = STATE_UMOUNT_REQ;
 			NfsSend ();
 		}