From fab7d571915bf770575460e434420c7e26a88c78 Mon Sep 17 00:00:00 2001 From: green Date: Wed, 4 Nov 2009 04:16:16 +0000 Subject: [PATCH] b=19128 r=adilger,tappro,rread Properly add a request to the start of a replay list if there are no requests with smaller tid in the list already. --- lustre/ChangeLog | 7 +++++++ lustre/ptlrpc/client.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 7015c62..b901507 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -205,6 +205,13 @@ Description: Slow stale export processing during normal start up Details : The global mgc lock prevents OST setup to be run in parallel. Replace the global lock with a per-config_llog_data semaphore. +Severity : normal +Bugzilla : 19128 +Description: Out or order replies might be lost on replay +Details : In ptlrpc_retain_replayable_request if we cannot find retained + request with tid smaller then one currently being added, add it + to the start, not end of the list. + ------------------------------------------------------------------------------- 2009-10-16 Sun Microsystems, Inc. * version 1.8.1.1 diff --git a/lustre/ptlrpc/client.c b/lustre/ptlrpc/client.c index 6722ba4..c9dba2f 100644 --- a/lustre/ptlrpc/client.c +++ b/lustre/ptlrpc/client.c @@ -2002,7 +2002,7 @@ void ptlrpc_retain_replayable_request(struct ptlrpc_request *req, return; } - list_add_tail(&req->rq_replay_list, &imp->imp_replay_list); + list_add(&req->rq_replay_list, &imp->imp_replay_list); } int ptlrpc_queue_wait(struct ptlrpc_request *req) -- 1.8.3.1