When we receive a packet with the previous rpc_id then we have the comment "stale packet, wait a bit longer", but that's not what the code does. rpc_check_reply() returns 0 in this case and the caller then interprets the packet as valid. Always return -EAGAIN for invalid rpc_ids. This lets the caller ignore the packets as intented. Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> --- fs/nfs.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/fs/nfs.c b/fs/nfs.c index 9956791820..1bfd36fcb6 100644 --- a/fs/nfs.c +++ b/fs/nfs.c @@ -368,13 +368,8 @@ static int rpc_check_reply(struct packet *pkt, int rpc_prog, memcpy(&rpc, pkt->data, sizeof(rpc)); - if (ntoh32(rpc.id) != rpc_id) { - if (rpc_id - ntoh32(rpc.id) == 1) - /* stale packet, wait a bit longer */ - return 0; - - return -EINVAL; - } + if (ntoh32(rpc.id) != rpc_id) + return -EAGAIN; if (rpc.rstatus || rpc.verifier || -- 2.26.0.rc2 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox