Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dd4877bfb6f09cb4a294b459b354c8fc8fa66904
Commit:     dd4877bfb6f09cb4a294b459b354c8fc8fa66904
Parent:     e8ff2a8453cedf38d6d7a0528cb9c308066a3e3e
Author:     J. Bruce Fields <[EMAIL PROTECTED]>
AuthorDate: Tue Oct 24 18:33:17 2006 -0400
Committer:  J. Bruce Fields <[EMAIL PROTECTED]>
CommitDate: Tue Oct 9 18:31:57 2007 -0400

    knfsd: fix callback rpc cred
    
    It doesn't make sense to make the callback with credentials that the
    client made the setclientid with.  Instead the spec requires that the
    callback occur with the credentials the client authenticated *to*.
    It probably doesn't matter what we use for auth_unix, and some more
    infrastructure will be needed for auth_gss, so let's just remove the
    cred lookup for now.
    
    Signed-off-by: J. Bruce Fields <[EMAIL PROTECTED]>
    Acked-by:  Neil Brown <[EMAIL PROTECTED]>
---
 fs/nfsd/nfs4callback.c |   33 ---------------------------------
 1 files changed, 0 insertions(+), 33 deletions(-)

diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
index c17a520..c1cb7e0 100644
--- a/fs/nfsd/nfs4callback.c
+++ b/fs/nfsd/nfs4callback.c
@@ -344,28 +344,6 @@ static struct rpc_version *        nfs_cb_version[] = {
        &nfs_cb_version4,
 };
 
-/*
- * Use the SETCLIENTID credential
- */
-static struct rpc_cred *
-nfsd4_lookupcred(struct nfs4_client *clp, int taskflags)
-{
-        struct auth_cred acred;
-       struct rpc_clnt *clnt = clp->cl_callback.cb_client;
-       struct rpc_cred *ret;
-
-        get_group_info(clp->cl_cred.cr_group_info);
-        acred.uid = clp->cl_cred.cr_uid;
-        acred.gid = clp->cl_cred.cr_gid;
-        acred.group_info = clp->cl_cred.cr_group_info;
-
-        dprintk("NFSD:     looking up %s cred\n",
-                clnt->cl_auth->au_ops->au_name);
-        ret = rpcauth_lookup_credcache(clnt->cl_auth, &acred, taskflags);
-        put_group_info(clp->cl_cred.cr_group_info);
-        return ret;
-}
-
 /* Reference counting, callback cleanup, etc., all look racy as heck.
  * And why is cb_set an atomic? */
 
@@ -379,18 +357,13 @@ static int do_probe_callback(void *data)
        };
        int status;
 
-       msg.rpc_cred = nfsd4_lookupcred(clp, 0);
-       if (IS_ERR(msg.rpc_cred))
-               goto out;
        status = rpc_call_sync(cb->cb_client, &msg, RPC_TASK_SOFT);
-       put_rpccred(msg.rpc_cred);
 
        if (status) {
                rpc_shutdown_client(cb->cb_client);
                cb->cb_client = NULL;
        } else
                atomic_set(&cb->cb_set, 1);
-out:
        put_nfs4_client(clp);
        return 0;
 }
@@ -488,10 +461,6 @@ nfsd4_cb_recall(struct nfs4_delegation *dp)
        if ((!atomic_read(&clp->cl_callback.cb_set)) || !clnt)
                return;
 
-       msg.rpc_cred = nfsd4_lookupcred(clp, 0);
-       if (IS_ERR(msg.rpc_cred))
-               goto out;
-
        cbr->cbr_trunc = 0; /* XXX need to implement truncate optimization */
        cbr->cbr_dp = dp;
 
@@ -512,8 +481,6 @@ nfsd4_cb_recall(struct nfs4_delegation *dp)
                status = rpc_call_sync(clnt, &msg, RPC_TASK_SOFT);
        }
 out_put_cred:
-       put_rpccred(msg.rpc_cred);
-out:
        if (status == -EIO)
                atomic_set(&clp->cl_callback.cb_set, 0);
        /* Success or failure, now we're either waiting for lease expiration
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to