On 11-Jun-00 Matthew Dillon wrote:
>:Here is a rather suspicious fix, I have not looked at rpc call
>:use in detail:
>:
>:--- mount_nfs.c.orig Sat Jun 10 11:08:19 2000
>:+++ mount_nfs.c Sat Jun 10 11:09:06 2000
>:@@ -784,10 +784,11 @@
>: warnx("%s", clnt_sperror(clp,
>: "bad MNT RPC"));
>: } else {
>:- auth_destroy(clp->cl_auth);
>:- clnt_destroy(clp);
>: retrycnt = 0;
>: }
>:+ auth_destroy(clp->cl_auth);
>:+ clnt_destroy(clp);
>:+ so = RPC_ANYSOCK;
>
> Good catch! This patch looks good to me, I am going to go ahead
> and commit it.
>
> Resetting 'so' is good code form, but I went through the rpc code
> and it wasn't an operational bug ... the rpc code can overwrite so
> in the case of a failure but only with '-1', which is RPC_ANYSOCK
> anyway. Still, it's good not to make assumptions.
>
> -Matt
Without the "so = RPC_ANYSOCK" and no other changes, the "weak credential"
failure turned into a "bad file descriptor" failure, so I think the non -1
socket fd is being reused. Perhaps the initialization of "so" should be moved
into the retry loop.
Jonathan Hanna <[EMAIL PROTECTED]>
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message