diff options
Diffstat (limited to 'net/sunrpc/clnt.c')
-rw-r--r-- | net/sunrpc/clnt.c | 145 |
1 files changed, 76 insertions, 69 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index c95a61736d1c..6d7221fe990a 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c | |||
@@ -42,6 +42,10 @@ | |||
42 | # define RPCDBG_FACILITY RPCDBG_CALL | 42 | # define RPCDBG_FACILITY RPCDBG_CALL |
43 | #endif | 43 | #endif |
44 | 44 | ||
45 | #define dprint_status(t) \ | ||
46 | dprintk("RPC: %5u %s (status %d)\n", t->tk_pid, \ | ||
47 | __FUNCTION__, t->tk_status) | ||
48 | |||
45 | static DECLARE_WAIT_QUEUE_HEAD(destroy_wait); | 49 | static DECLARE_WAIT_QUEUE_HEAD(destroy_wait); |
46 | 50 | ||
47 | 51 | ||
@@ -106,8 +110,8 @@ static struct rpc_clnt * rpc_new_client(struct rpc_xprt *xprt, char *servname, s | |||
106 | int err; | 110 | int err; |
107 | int len; | 111 | int len; |
108 | 112 | ||
109 | dprintk("RPC: creating %s client for %s (xprt %p)\n", | 113 | dprintk("RPC: creating %s client for %s (xprt %p)\n", |
110 | program->name, servname, xprt); | 114 | program->name, servname, xprt); |
111 | 115 | ||
112 | err = -EINVAL; | 116 | err = -EINVAL; |
113 | if (!xprt) | 117 | if (!xprt) |
@@ -220,7 +224,7 @@ struct rpc_clnt *rpc_create(struct rpc_create_args *args) | |||
220 | xprt->resvport = 0; | 224 | xprt->resvport = 0; |
221 | 225 | ||
222 | dprintk("RPC: creating %s client for %s (xprt %p)\n", | 226 | dprintk("RPC: creating %s client for %s (xprt %p)\n", |
223 | args->program->name, args->servername, xprt); | 227 | args->program->name, args->servername, xprt); |
224 | 228 | ||
225 | clnt = rpc_new_client(xprt, args->servername, args->program, | 229 | clnt = rpc_new_client(xprt, args->servername, args->program, |
226 | args->version, args->authflavor); | 230 | args->version, args->authflavor); |
@@ -245,6 +249,8 @@ struct rpc_clnt *rpc_create(struct rpc_create_args *args) | |||
245 | clnt->cl_autobind = 1; | 249 | clnt->cl_autobind = 1; |
246 | if (args->flags & RPC_CLNT_CREATE_ONESHOT) | 250 | if (args->flags & RPC_CLNT_CREATE_ONESHOT) |
247 | clnt->cl_oneshot = 1; | 251 | clnt->cl_oneshot = 1; |
252 | if (args->flags & RPC_CLNT_CREATE_DISCRTRY) | ||
253 | clnt->cl_discrtry = 1; | ||
248 | 254 | ||
249 | return clnt; | 255 | return clnt; |
250 | } | 256 | } |
@@ -288,7 +294,7 @@ out_no_path: | |||
288 | out_no_stats: | 294 | out_no_stats: |
289 | kfree(new); | 295 | kfree(new); |
290 | out_no_clnt: | 296 | out_no_clnt: |
291 | dprintk("RPC: %s returned error %d\n", __FUNCTION__, err); | 297 | dprintk("RPC: %s: returned error %d\n", __FUNCTION__, err); |
292 | return ERR_PTR(err); | 298 | return ERR_PTR(err); |
293 | } | 299 | } |
294 | 300 | ||
@@ -301,7 +307,7 @@ out_no_clnt: | |||
301 | int | 307 | int |
302 | rpc_shutdown_client(struct rpc_clnt *clnt) | 308 | rpc_shutdown_client(struct rpc_clnt *clnt) |
303 | { | 309 | { |
304 | dprintk("RPC: shutting down %s client for %s, tasks=%d\n", | 310 | dprintk("RPC: shutting down %s client for %s, tasks=%d\n", |
305 | clnt->cl_protname, clnt->cl_server, | 311 | clnt->cl_protname, clnt->cl_server, |
306 | atomic_read(&clnt->cl_users)); | 312 | atomic_read(&clnt->cl_users)); |
307 | 313 | ||
@@ -336,7 +342,7 @@ rpc_destroy_client(struct rpc_clnt *clnt) | |||
336 | return 1; | 342 | return 1; |
337 | BUG_ON(atomic_read(&clnt->cl_users) != 0); | 343 | BUG_ON(atomic_read(&clnt->cl_users) != 0); |
338 | 344 | ||
339 | dprintk("RPC: destroying %s client for %s\n", | 345 | dprintk("RPC: destroying %s client for %s\n", |
340 | clnt->cl_protname, clnt->cl_server); | 346 | clnt->cl_protname, clnt->cl_server); |
341 | if (clnt->cl_auth) { | 347 | if (clnt->cl_auth) { |
342 | rpcauth_destroy(clnt->cl_auth); | 348 | rpcauth_destroy(clnt->cl_auth); |
@@ -366,8 +372,8 @@ out_free: | |||
366 | void | 372 | void |
367 | rpc_release_client(struct rpc_clnt *clnt) | 373 | rpc_release_client(struct rpc_clnt *clnt) |
368 | { | 374 | { |
369 | dprintk("RPC: rpc_release_client(%p, %d)\n", | 375 | dprintk("RPC: rpc_release_client(%p, %d)\n", |
370 | clnt, atomic_read(&clnt->cl_users)); | 376 | clnt, atomic_read(&clnt->cl_users)); |
371 | 377 | ||
372 | if (!atomic_dec_and_test(&clnt->cl_users)) | 378 | if (!atomic_dec_and_test(&clnt->cl_users)) |
373 | return; | 379 | return; |
@@ -486,17 +492,13 @@ int rpc_call_sync(struct rpc_clnt *clnt, struct rpc_message *msg, int flags) | |||
486 | /* Mask signals on RPC calls _and_ GSS_AUTH upcalls */ | 492 | /* Mask signals on RPC calls _and_ GSS_AUTH upcalls */ |
487 | rpc_task_sigmask(task, &oldset); | 493 | rpc_task_sigmask(task, &oldset); |
488 | 494 | ||
489 | rpc_call_setup(task, msg, 0); | ||
490 | |||
491 | /* Set up the call info struct and execute the task */ | 495 | /* Set up the call info struct and execute the task */ |
496 | rpc_call_setup(task, msg, 0); | ||
497 | if (task->tk_status == 0) { | ||
498 | atomic_inc(&task->tk_count); | ||
499 | rpc_execute(task); | ||
500 | } | ||
492 | status = task->tk_status; | 501 | status = task->tk_status; |
493 | if (status != 0) | ||
494 | goto out; | ||
495 | atomic_inc(&task->tk_count); | ||
496 | status = rpc_execute(task); | ||
497 | if (status == 0) | ||
498 | status = task->tk_status; | ||
499 | out: | ||
500 | rpc_put_task(task); | 502 | rpc_put_task(task); |
501 | rpc_restore_sigmask(&oldset); | 503 | rpc_restore_sigmask(&oldset); |
502 | return status; | 504 | return status; |
@@ -658,9 +660,10 @@ call_start(struct rpc_task *task) | |||
658 | { | 660 | { |
659 | struct rpc_clnt *clnt = task->tk_client; | 661 | struct rpc_clnt *clnt = task->tk_client; |
660 | 662 | ||
661 | dprintk("RPC: %4d call_start %s%d proc %d (%s)\n", task->tk_pid, | 663 | dprintk("RPC: %5u call_start %s%d proc %d (%s)\n", task->tk_pid, |
662 | clnt->cl_protname, clnt->cl_vers, task->tk_msg.rpc_proc->p_proc, | 664 | clnt->cl_protname, clnt->cl_vers, |
663 | (RPC_IS_ASYNC(task) ? "async" : "sync")); | 665 | task->tk_msg.rpc_proc->p_proc, |
666 | (RPC_IS_ASYNC(task) ? "async" : "sync")); | ||
664 | 667 | ||
665 | /* Increment call count */ | 668 | /* Increment call count */ |
666 | task->tk_msg.rpc_proc->p_count++; | 669 | task->tk_msg.rpc_proc->p_count++; |
@@ -674,7 +677,7 @@ call_start(struct rpc_task *task) | |||
674 | static void | 677 | static void |
675 | call_reserve(struct rpc_task *task) | 678 | call_reserve(struct rpc_task *task) |
676 | { | 679 | { |
677 | dprintk("RPC: %4d call_reserve\n", task->tk_pid); | 680 | dprint_status(task); |
678 | 681 | ||
679 | if (!rpcauth_uptodatecred(task)) { | 682 | if (!rpcauth_uptodatecred(task)) { |
680 | task->tk_action = call_refresh; | 683 | task->tk_action = call_refresh; |
@@ -694,8 +697,7 @@ call_reserveresult(struct rpc_task *task) | |||
694 | { | 697 | { |
695 | int status = task->tk_status; | 698 | int status = task->tk_status; |
696 | 699 | ||
697 | dprintk("RPC: %4d call_reserveresult (status %d)\n", | 700 | dprint_status(task); |
698 | task->tk_pid, task->tk_status); | ||
699 | 701 | ||
700 | /* | 702 | /* |
701 | * After a call to xprt_reserve(), we must have either | 703 | * After a call to xprt_reserve(), we must have either |
@@ -749,8 +751,8 @@ call_allocate(struct rpc_task *task) | |||
749 | struct rpc_xprt *xprt = task->tk_xprt; | 751 | struct rpc_xprt *xprt = task->tk_xprt; |
750 | unsigned int bufsiz; | 752 | unsigned int bufsiz; |
751 | 753 | ||
752 | dprintk("RPC: %4d call_allocate (status %d)\n", | 754 | dprint_status(task); |
753 | task->tk_pid, task->tk_status); | 755 | |
754 | task->tk_action = call_bind; | 756 | task->tk_action = call_bind; |
755 | if (req->rq_buffer) | 757 | if (req->rq_buffer) |
756 | return; | 758 | return; |
@@ -761,7 +763,8 @@ call_allocate(struct rpc_task *task) | |||
761 | 763 | ||
762 | if (xprt->ops->buf_alloc(task, bufsiz << 1) != NULL) | 764 | if (xprt->ops->buf_alloc(task, bufsiz << 1) != NULL) |
763 | return; | 765 | return; |
764 | printk(KERN_INFO "RPC: buffer allocation failed for task %p\n", task); | 766 | |
767 | dprintk("RPC: %5u rpc_buffer allocation failed\n", task->tk_pid); | ||
765 | 768 | ||
766 | if (RPC_IS_ASYNC(task) || !signalled()) { | 769 | if (RPC_IS_ASYNC(task) || !signalled()) { |
767 | xprt_release(task); | 770 | xprt_release(task); |
@@ -798,8 +801,7 @@ call_encode(struct rpc_task *task) | |||
798 | kxdrproc_t encode; | 801 | kxdrproc_t encode; |
799 | __be32 *p; | 802 | __be32 *p; |
800 | 803 | ||
801 | dprintk("RPC: %4d call_encode (status %d)\n", | 804 | dprint_status(task); |
802 | task->tk_pid, task->tk_status); | ||
803 | 805 | ||
804 | /* Default buffer setup */ | 806 | /* Default buffer setup */ |
805 | bufsiz = req->rq_bufsize >> 1; | 807 | bufsiz = req->rq_bufsize >> 1; |
@@ -845,8 +847,7 @@ call_bind(struct rpc_task *task) | |||
845 | { | 847 | { |
846 | struct rpc_xprt *xprt = task->tk_xprt; | 848 | struct rpc_xprt *xprt = task->tk_xprt; |
847 | 849 | ||
848 | dprintk("RPC: %4d call_bind (status %d)\n", | 850 | dprint_status(task); |
849 | task->tk_pid, task->tk_status); | ||
850 | 851 | ||
851 | task->tk_action = call_connect; | 852 | task->tk_action = call_connect; |
852 | if (!xprt_bound(xprt)) { | 853 | if (!xprt_bound(xprt)) { |
@@ -865,8 +866,7 @@ call_bind_status(struct rpc_task *task) | |||
865 | int status = -EACCES; | 866 | int status = -EACCES; |
866 | 867 | ||
867 | if (task->tk_status >= 0) { | 868 | if (task->tk_status >= 0) { |
868 | dprintk("RPC: %4d call_bind_status (status %d)\n", | 869 | dprint_status(task); |
869 | task->tk_pid, task->tk_status); | ||
870 | task->tk_status = 0; | 870 | task->tk_status = 0; |
871 | task->tk_action = call_connect; | 871 | task->tk_action = call_connect; |
872 | return; | 872 | return; |
@@ -874,24 +874,24 @@ call_bind_status(struct rpc_task *task) | |||
874 | 874 | ||
875 | switch (task->tk_status) { | 875 | switch (task->tk_status) { |
876 | case -EACCES: | 876 | case -EACCES: |
877 | dprintk("RPC: %4d remote rpcbind: RPC program/version unavailable\n", | 877 | dprintk("RPC: %5u remote rpcbind: RPC program/version " |
878 | task->tk_pid); | 878 | "unavailable\n", task->tk_pid); |
879 | rpc_delay(task, 3*HZ); | 879 | rpc_delay(task, 3*HZ); |
880 | goto retry_timeout; | 880 | goto retry_timeout; |
881 | case -ETIMEDOUT: | 881 | case -ETIMEDOUT: |
882 | dprintk("RPC: %4d rpcbind request timed out\n", | 882 | dprintk("RPC: %5u rpcbind request timed out\n", |
883 | task->tk_pid); | 883 | task->tk_pid); |
884 | goto retry_timeout; | 884 | goto retry_timeout; |
885 | case -EPFNOSUPPORT: | 885 | case -EPFNOSUPPORT: |
886 | dprintk("RPC: %4d remote rpcbind service unavailable\n", | 886 | dprintk("RPC: %5u remote rpcbind service unavailable\n", |
887 | task->tk_pid); | 887 | task->tk_pid); |
888 | break; | 888 | break; |
889 | case -EPROTONOSUPPORT: | 889 | case -EPROTONOSUPPORT: |
890 | dprintk("RPC: %4d remote rpcbind version 2 unavailable\n", | 890 | dprintk("RPC: %5u remote rpcbind version 2 unavailable\n", |
891 | task->tk_pid); | 891 | task->tk_pid); |
892 | break; | 892 | break; |
893 | default: | 893 | default: |
894 | dprintk("RPC: %4d unrecognized rpcbind error (%d)\n", | 894 | dprintk("RPC: %5u unrecognized rpcbind error (%d)\n", |
895 | task->tk_pid, -task->tk_status); | 895 | task->tk_pid, -task->tk_status); |
896 | status = -EIO; | 896 | status = -EIO; |
897 | } | 897 | } |
@@ -911,7 +911,7 @@ call_connect(struct rpc_task *task) | |||
911 | { | 911 | { |
912 | struct rpc_xprt *xprt = task->tk_xprt; | 912 | struct rpc_xprt *xprt = task->tk_xprt; |
913 | 913 | ||
914 | dprintk("RPC: %4d call_connect xprt %p %s connected\n", | 914 | dprintk("RPC: %5u call_connect xprt %p %s connected\n", |
915 | task->tk_pid, xprt, | 915 | task->tk_pid, xprt, |
916 | (xprt_connected(xprt) ? "is" : "is not")); | 916 | (xprt_connected(xprt) ? "is" : "is not")); |
917 | 917 | ||
@@ -933,8 +933,7 @@ call_connect_status(struct rpc_task *task) | |||
933 | struct rpc_clnt *clnt = task->tk_client; | 933 | struct rpc_clnt *clnt = task->tk_client; |
934 | int status = task->tk_status; | 934 | int status = task->tk_status; |
935 | 935 | ||
936 | dprintk("RPC: %5u call_connect_status (status %d)\n", | 936 | dprint_status(task); |
937 | task->tk_pid, task->tk_status); | ||
938 | 937 | ||
939 | task->tk_status = 0; | 938 | task->tk_status = 0; |
940 | if (status >= 0) { | 939 | if (status >= 0) { |
@@ -966,8 +965,7 @@ call_connect_status(struct rpc_task *task) | |||
966 | static void | 965 | static void |
967 | call_transmit(struct rpc_task *task) | 966 | call_transmit(struct rpc_task *task) |
968 | { | 967 | { |
969 | dprintk("RPC: %4d call_transmit (status %d)\n", | 968 | dprint_status(task); |
970 | task->tk_pid, task->tk_status); | ||
971 | 969 | ||
972 | task->tk_action = call_status; | 970 | task->tk_action = call_status; |
973 | if (task->tk_status < 0) | 971 | if (task->tk_status < 0) |
@@ -1028,8 +1026,7 @@ call_status(struct rpc_task *task) | |||
1028 | if (req->rq_received > 0 && !req->rq_bytes_sent) | 1026 | if (req->rq_received > 0 && !req->rq_bytes_sent) |
1029 | task->tk_status = req->rq_received; | 1027 | task->tk_status = req->rq_received; |
1030 | 1028 | ||
1031 | dprintk("RPC: %4d call_status (status %d)\n", | 1029 | dprint_status(task); |
1032 | task->tk_pid, task->tk_status); | ||
1033 | 1030 | ||
1034 | status = task->tk_status; | 1031 | status = task->tk_status; |
1035 | if (status >= 0) { | 1032 | if (status >= 0) { |
@@ -1080,11 +1077,11 @@ call_timeout(struct rpc_task *task) | |||
1080 | struct rpc_clnt *clnt = task->tk_client; | 1077 | struct rpc_clnt *clnt = task->tk_client; |
1081 | 1078 | ||
1082 | if (xprt_adjust_timeout(task->tk_rqstp) == 0) { | 1079 | if (xprt_adjust_timeout(task->tk_rqstp) == 0) { |
1083 | dprintk("RPC: %4d call_timeout (minor)\n", task->tk_pid); | 1080 | dprintk("RPC: %5u call_timeout (minor)\n", task->tk_pid); |
1084 | goto retry; | 1081 | goto retry; |
1085 | } | 1082 | } |
1086 | 1083 | ||
1087 | dprintk("RPC: %4d call_timeout (major)\n", task->tk_pid); | 1084 | dprintk("RPC: %5u call_timeout (major)\n", task->tk_pid); |
1088 | task->tk_timeouts++; | 1085 | task->tk_timeouts++; |
1089 | 1086 | ||
1090 | if (RPC_IS_SOFT(task)) { | 1087 | if (RPC_IS_SOFT(task)) { |
@@ -1118,8 +1115,8 @@ call_decode(struct rpc_task *task) | |||
1118 | kxdrproc_t decode = task->tk_msg.rpc_proc->p_decode; | 1115 | kxdrproc_t decode = task->tk_msg.rpc_proc->p_decode; |
1119 | __be32 *p; | 1116 | __be32 *p; |
1120 | 1117 | ||
1121 | dprintk("RPC: %4d call_decode (status %d)\n", | 1118 | dprintk("RPC: %5u call_decode (status %d)\n", |
1122 | task->tk_pid, task->tk_status); | 1119 | task->tk_pid, task->tk_status); |
1123 | 1120 | ||
1124 | if (task->tk_flags & RPC_CALL_MAJORSEEN) { | 1121 | if (task->tk_flags & RPC_CALL_MAJORSEEN) { |
1125 | printk(KERN_NOTICE "%s: server %s OK\n", | 1122 | printk(KERN_NOTICE "%s: server %s OK\n", |
@@ -1133,8 +1130,8 @@ call_decode(struct rpc_task *task) | |||
1133 | clnt->cl_stats->rpcretrans++; | 1130 | clnt->cl_stats->rpcretrans++; |
1134 | goto out_retry; | 1131 | goto out_retry; |
1135 | } | 1132 | } |
1136 | dprintk("%s: too small RPC reply size (%d bytes)\n", | 1133 | dprintk("RPC: %s: too small RPC reply size (%d bytes)\n", |
1137 | clnt->cl_protname, task->tk_status); | 1134 | clnt->cl_protname, task->tk_status); |
1138 | task->tk_action = call_timeout; | 1135 | task->tk_action = call_timeout; |
1139 | goto out_retry; | 1136 | goto out_retry; |
1140 | } | 1137 | } |
@@ -1166,8 +1163,8 @@ call_decode(struct rpc_task *task) | |||
1166 | task->tk_msg.rpc_resp); | 1163 | task->tk_msg.rpc_resp); |
1167 | unlock_kernel(); | 1164 | unlock_kernel(); |
1168 | } | 1165 | } |
1169 | dprintk("RPC: %4d call_decode result %d\n", task->tk_pid, | 1166 | dprintk("RPC: %5u call_decode result %d\n", task->tk_pid, |
1170 | task->tk_status); | 1167 | task->tk_status); |
1171 | return; | 1168 | return; |
1172 | out_retry: | 1169 | out_retry: |
1173 | req->rq_received = req->rq_private_buf.len = 0; | 1170 | req->rq_received = req->rq_private_buf.len = 0; |
@@ -1180,7 +1177,7 @@ out_retry: | |||
1180 | static void | 1177 | static void |
1181 | call_refresh(struct rpc_task *task) | 1178 | call_refresh(struct rpc_task *task) |
1182 | { | 1179 | { |
1183 | dprintk("RPC: %4d call_refresh\n", task->tk_pid); | 1180 | dprint_status(task); |
1184 | 1181 | ||
1185 | xprt_release(task); /* Must do to obtain new XID */ | 1182 | xprt_release(task); /* Must do to obtain new XID */ |
1186 | task->tk_action = call_refreshresult; | 1183 | task->tk_action = call_refreshresult; |
@@ -1196,8 +1193,8 @@ static void | |||
1196 | call_refreshresult(struct rpc_task *task) | 1193 | call_refreshresult(struct rpc_task *task) |
1197 | { | 1194 | { |
1198 | int status = task->tk_status; | 1195 | int status = task->tk_status; |
1199 | dprintk("RPC: %4d call_refreshresult (status %d)\n", | 1196 | |
1200 | task->tk_pid, task->tk_status); | 1197 | dprint_status(task); |
1201 | 1198 | ||
1202 | task->tk_status = 0; | 1199 | task->tk_status = 0; |
1203 | task->tk_action = call_reserve; | 1200 | task->tk_action = call_reserve; |
@@ -1275,11 +1272,15 @@ call_verify(struct rpc_task *task) | |||
1275 | case RPC_AUTH_ERROR: | 1272 | case RPC_AUTH_ERROR: |
1276 | break; | 1273 | break; |
1277 | case RPC_MISMATCH: | 1274 | case RPC_MISMATCH: |
1278 | dprintk("%s: RPC call version mismatch!\n", __FUNCTION__); | 1275 | dprintk("RPC: %5u %s: RPC call version " |
1276 | "mismatch!\n", | ||
1277 | task->tk_pid, __FUNCTION__); | ||
1279 | error = -EPROTONOSUPPORT; | 1278 | error = -EPROTONOSUPPORT; |
1280 | goto out_err; | 1279 | goto out_err; |
1281 | default: | 1280 | default: |
1282 | dprintk("%s: RPC call rejected, unknown error: %x\n", __FUNCTION__, n); | 1281 | dprintk("RPC: %5u %s: RPC call rejected, " |
1282 | "unknown error: %x\n", | ||
1283 | task->tk_pid, __FUNCTION__, n); | ||
1283 | goto out_eio; | 1284 | goto out_eio; |
1284 | } | 1285 | } |
1285 | if (--len < 0) | 1286 | if (--len < 0) |
@@ -1292,8 +1293,8 @@ call_verify(struct rpc_task *task) | |||
1292 | if (!task->tk_cred_retry) | 1293 | if (!task->tk_cred_retry) |
1293 | break; | 1294 | break; |
1294 | task->tk_cred_retry--; | 1295 | task->tk_cred_retry--; |
1295 | dprintk("RPC: %4d call_verify: retry stale creds\n", | 1296 | dprintk("RPC: %5u %s: retry stale creds\n", |
1296 | task->tk_pid); | 1297 | task->tk_pid, __FUNCTION__); |
1297 | rpcauth_invalcred(task); | 1298 | rpcauth_invalcred(task); |
1298 | task->tk_action = call_refresh; | 1299 | task->tk_action = call_refresh; |
1299 | goto out_retry; | 1300 | goto out_retry; |
@@ -1303,8 +1304,8 @@ call_verify(struct rpc_task *task) | |||
1303 | if (!task->tk_garb_retry) | 1304 | if (!task->tk_garb_retry) |
1304 | break; | 1305 | break; |
1305 | task->tk_garb_retry--; | 1306 | task->tk_garb_retry--; |
1306 | dprintk("RPC: %4d call_verify: retry garbled creds\n", | 1307 | dprintk("RPC: %5u %s: retry garbled creds\n", |
1307 | task->tk_pid); | 1308 | task->tk_pid, __FUNCTION__); |
1308 | task->tk_action = call_bind; | 1309 | task->tk_action = call_bind; |
1309 | goto out_retry; | 1310 | goto out_retry; |
1310 | case RPC_AUTH_TOOWEAK: | 1311 | case RPC_AUTH_TOOWEAK: |
@@ -1315,8 +1316,8 @@ call_verify(struct rpc_task *task) | |||
1315 | printk(KERN_WARNING "call_verify: unknown auth error: %x\n", n); | 1316 | printk(KERN_WARNING "call_verify: unknown auth error: %x\n", n); |
1316 | error = -EIO; | 1317 | error = -EIO; |
1317 | } | 1318 | } |
1318 | dprintk("RPC: %4d call_verify: call rejected %d\n", | 1319 | dprintk("RPC: %5u %s: call rejected %d\n", |
1319 | task->tk_pid, n); | 1320 | task->tk_pid, __FUNCTION__, n); |
1320 | goto out_err; | 1321 | goto out_err; |
1321 | } | 1322 | } |
1322 | if (!(p = rpcauth_checkverf(task, p))) { | 1323 | if (!(p = rpcauth_checkverf(task, p))) { |
@@ -1330,20 +1331,24 @@ call_verify(struct rpc_task *task) | |||
1330 | case RPC_SUCCESS: | 1331 | case RPC_SUCCESS: |
1331 | return p; | 1332 | return p; |
1332 | case RPC_PROG_UNAVAIL: | 1333 | case RPC_PROG_UNAVAIL: |
1333 | dprintk("RPC: call_verify: program %u is unsupported by server %s\n", | 1334 | dprintk("RPC: %5u %s: program %u is unsupported by server %s\n", |
1335 | task->tk_pid, __FUNCTION__, | ||
1334 | (unsigned int)task->tk_client->cl_prog, | 1336 | (unsigned int)task->tk_client->cl_prog, |
1335 | task->tk_client->cl_server); | 1337 | task->tk_client->cl_server); |
1336 | error = -EPFNOSUPPORT; | 1338 | error = -EPFNOSUPPORT; |
1337 | goto out_err; | 1339 | goto out_err; |
1338 | case RPC_PROG_MISMATCH: | 1340 | case RPC_PROG_MISMATCH: |
1339 | dprintk("RPC: call_verify: program %u, version %u unsupported by server %s\n", | 1341 | dprintk("RPC: %5u %s: program %u, version %u unsupported by " |
1342 | "server %s\n", task->tk_pid, __FUNCTION__, | ||
1340 | (unsigned int)task->tk_client->cl_prog, | 1343 | (unsigned int)task->tk_client->cl_prog, |
1341 | (unsigned int)task->tk_client->cl_vers, | 1344 | (unsigned int)task->tk_client->cl_vers, |
1342 | task->tk_client->cl_server); | 1345 | task->tk_client->cl_server); |
1343 | error = -EPROTONOSUPPORT; | 1346 | error = -EPROTONOSUPPORT; |
1344 | goto out_err; | 1347 | goto out_err; |
1345 | case RPC_PROC_UNAVAIL: | 1348 | case RPC_PROC_UNAVAIL: |
1346 | dprintk("RPC: call_verify: proc %p unsupported by program %u, version %u on server %s\n", | 1349 | dprintk("RPC: %5u %s: proc %p unsupported by program %u, " |
1350 | "version %u on server %s\n", | ||
1351 | task->tk_pid, __FUNCTION__, | ||
1347 | task->tk_msg.rpc_proc, | 1352 | task->tk_msg.rpc_proc, |
1348 | task->tk_client->cl_prog, | 1353 | task->tk_client->cl_prog, |
1349 | task->tk_client->cl_vers, | 1354 | task->tk_client->cl_vers, |
@@ -1351,7 +1356,8 @@ call_verify(struct rpc_task *task) | |||
1351 | error = -EOPNOTSUPP; | 1356 | error = -EOPNOTSUPP; |
1352 | goto out_err; | 1357 | goto out_err; |
1353 | case RPC_GARBAGE_ARGS: | 1358 | case RPC_GARBAGE_ARGS: |
1354 | dprintk("RPC: %4d %s: server saw garbage\n", task->tk_pid, __FUNCTION__); | 1359 | dprintk("RPC: %5u %s: server saw garbage\n", |
1360 | task->tk_pid, __FUNCTION__); | ||
1355 | break; /* retry */ | 1361 | break; /* retry */ |
1356 | default: | 1362 | default: |
1357 | printk(KERN_WARNING "call_verify: server accept status: %x\n", n); | 1363 | printk(KERN_WARNING "call_verify: server accept status: %x\n", n); |
@@ -1362,7 +1368,8 @@ out_garbage: | |||
1362 | task->tk_client->cl_stats->rpcgarbage++; | 1368 | task->tk_client->cl_stats->rpcgarbage++; |
1363 | if (task->tk_garb_retry) { | 1369 | if (task->tk_garb_retry) { |
1364 | task->tk_garb_retry--; | 1370 | task->tk_garb_retry--; |
1365 | dprintk("RPC %s: retrying %4d\n", __FUNCTION__, task->tk_pid); | 1371 | dprintk("RPC: %5u %s: retrying\n", |
1372 | task->tk_pid, __FUNCTION__); | ||
1366 | task->tk_action = call_bind; | 1373 | task->tk_action = call_bind; |
1367 | out_retry: | 1374 | out_retry: |
1368 | return ERR_PTR(-EAGAIN); | 1375 | return ERR_PTR(-EAGAIN); |