diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/sunrpc/clnt.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index 38829e20500b..7bcd931e06ee 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c | |||
@@ -1180,10 +1180,22 @@ static void | |||
1180 | call_transmit_status(struct rpc_task *task) | 1180 | call_transmit_status(struct rpc_task *task) |
1181 | { | 1181 | { |
1182 | task->tk_action = call_status; | 1182 | task->tk_action = call_status; |
1183 | |||
1184 | /* | ||
1185 | * Common case: success. Force the compiler to put this | ||
1186 | * test first. | ||
1187 | */ | ||
1188 | if (task->tk_status == 0) { | ||
1189 | xprt_end_transmit(task); | ||
1190 | rpc_task_force_reencode(task); | ||
1191 | return; | ||
1192 | } | ||
1193 | |||
1183 | switch (task->tk_status) { | 1194 | switch (task->tk_status) { |
1184 | case -EAGAIN: | 1195 | case -EAGAIN: |
1185 | break; | 1196 | break; |
1186 | default: | 1197 | default: |
1198 | dprint_status(task); | ||
1187 | xprt_end_transmit(task); | 1199 | xprt_end_transmit(task); |
1188 | /* | 1200 | /* |
1189 | * Special cases: if we've been waiting on the | 1201 | * Special cases: if we've been waiting on the |