diff options
| author | Steve French <sfrench@us.ibm.com> | 2005-12-31 13:27:22 -0500 |
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2005-12-31 13:27:22 -0500 |
| commit | eea60caef610c7a6c58c0de9c80ae1e438e01301 (patch) | |
| tree | 25e19289bba003fe085e589430d0d981fd6b73a7 /net/sunrpc | |
| parent | da8543ef125afc7bba4da526b61a1ae07dc25109 (diff) | |
| parent | 82c9df820112c6286a8e8fbe482e94b65b49062c (diff) | |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'net/sunrpc')
| -rw-r--r-- | net/sunrpc/auth_gss/auth_gss.c | 6 | ||||
| -rw-r--r-- | net/sunrpc/rpc_pipe.c | 4 | ||||
| -rw-r--r-- | net/sunrpc/xprtsock.c | 2 |
3 files changed, 8 insertions, 4 deletions
diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c index f44f46f1d8e0..8d782282ec19 100644 --- a/net/sunrpc/auth_gss/auth_gss.c +++ b/net/sunrpc/auth_gss/auth_gss.c | |||
| @@ -638,7 +638,7 @@ gss_pipe_destroy_msg(struct rpc_pipe_msg *msg) | |||
| 638 | gss_msg); | 638 | gss_msg); |
| 639 | atomic_inc(&gss_msg->count); | 639 | atomic_inc(&gss_msg->count); |
| 640 | gss_unhash_msg(gss_msg); | 640 | gss_unhash_msg(gss_msg); |
| 641 | if (msg->errno == -ETIMEDOUT || msg->errno == -EPIPE) { | 641 | if (msg->errno == -ETIMEDOUT) { |
| 642 | unsigned long now = jiffies; | 642 | unsigned long now = jiffies; |
| 643 | if (time_after(now, ratelimit)) { | 643 | if (time_after(now, ratelimit)) { |
| 644 | printk(KERN_WARNING "RPC: AUTH_GSS upcall timed out.\n" | 644 | printk(KERN_WARNING "RPC: AUTH_GSS upcall timed out.\n" |
| @@ -786,7 +786,9 @@ gss_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int taskflags) | |||
| 786 | cred->gc_flags = 0; | 786 | cred->gc_flags = 0; |
| 787 | cred->gc_base.cr_ops = &gss_credops; | 787 | cred->gc_base.cr_ops = &gss_credops; |
| 788 | cred->gc_service = gss_auth->service; | 788 | cred->gc_service = gss_auth->service; |
| 789 | err = gss_create_upcall(gss_auth, cred); | 789 | do { |
| 790 | err = gss_create_upcall(gss_auth, cred); | ||
| 791 | } while (err == -EAGAIN); | ||
| 790 | if (err < 0) | 792 | if (err < 0) |
| 791 | goto out_err; | 793 | goto out_err; |
| 792 | 794 | ||
diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c index c76ea221798c..16a2458f38f7 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c | |||
| @@ -174,7 +174,7 @@ rpc_pipe_release(struct inode *inode, struct file *filp) | |||
| 174 | goto out; | 174 | goto out; |
| 175 | msg = (struct rpc_pipe_msg *)filp->private_data; | 175 | msg = (struct rpc_pipe_msg *)filp->private_data; |
| 176 | if (msg != NULL) { | 176 | if (msg != NULL) { |
| 177 | msg->errno = -EPIPE; | 177 | msg->errno = -EAGAIN; |
| 178 | list_del_init(&msg->list); | 178 | list_del_init(&msg->list); |
| 179 | rpci->ops->destroy_msg(msg); | 179 | rpci->ops->destroy_msg(msg); |
| 180 | } | 180 | } |
| @@ -183,7 +183,7 @@ rpc_pipe_release(struct inode *inode, struct file *filp) | |||
| 183 | if (filp->f_mode & FMODE_READ) | 183 | if (filp->f_mode & FMODE_READ) |
| 184 | rpci->nreaders --; | 184 | rpci->nreaders --; |
| 185 | if (!rpci->nreaders) | 185 | if (!rpci->nreaders) |
| 186 | __rpc_purge_upcall(inode, -EPIPE); | 186 | __rpc_purge_upcall(inode, -EAGAIN); |
| 187 | if (rpci->ops->release_pipe) | 187 | if (rpci->ops->release_pipe) |
| 188 | rpci->ops->release_pipe(inode); | 188 | rpci->ops->release_pipe(inode); |
| 189 | out: | 189 | out: |
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index 0a51fd46a848..77e8800d4127 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c | |||
| @@ -990,6 +990,7 @@ static void xs_udp_connect_worker(void *args) | |||
| 990 | sk->sk_data_ready = xs_udp_data_ready; | 990 | sk->sk_data_ready = xs_udp_data_ready; |
| 991 | sk->sk_write_space = xs_udp_write_space; | 991 | sk->sk_write_space = xs_udp_write_space; |
| 992 | sk->sk_no_check = UDP_CSUM_NORCV; | 992 | sk->sk_no_check = UDP_CSUM_NORCV; |
| 993 | sk->sk_allocation = GFP_ATOMIC; | ||
| 993 | 994 | ||
| 994 | xprt_set_connected(xprt); | 995 | xprt_set_connected(xprt); |
| 995 | 996 | ||
| @@ -1074,6 +1075,7 @@ static void xs_tcp_connect_worker(void *args) | |||
| 1074 | sk->sk_data_ready = xs_tcp_data_ready; | 1075 | sk->sk_data_ready = xs_tcp_data_ready; |
| 1075 | sk->sk_state_change = xs_tcp_state_change; | 1076 | sk->sk_state_change = xs_tcp_state_change; |
| 1076 | sk->sk_write_space = xs_tcp_write_space; | 1077 | sk->sk_write_space = xs_tcp_write_space; |
| 1078 | sk->sk_allocation = GFP_ATOMIC; | ||
| 1077 | 1079 | ||
| 1078 | /* socket options */ | 1080 | /* socket options */ |
| 1079 | sk->sk_userlocks |= SOCK_BINDPORT_LOCK; | 1081 | sk->sk_userlocks |= SOCK_BINDPORT_LOCK; |
