]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/sunrpc/auth_unix.c
x86: stricter check in follow_huge_addr()
[linux-2.6-omap-h63xx.git] / net / sunrpc / auth_unix.c
index f7ff6ad3259eb90258be8794cd2bddffca4f25ca..5ed91e5bcee4a9ce04e22a167450b6c612362970 100644 (file)
@@ -21,8 +21,6 @@ struct unx_cred {
 };
 #define uc_uid                 uc_base.cr_uid
 
-#define UNX_CRED_EXPIRE                (60 * HZ)
-
 #define UNX_WRITESLACK         (21 + (UNX_MAXNODENAME >> 2))
 
 #ifdef RPC_DEBUG
@@ -38,8 +36,7 @@ unx_create(struct rpc_clnt *clnt, rpc_authflavor_t flavor)
 {
        dprintk("RPC:       creating UNIX authenticator for client %p\n",
                        clnt);
-       if (atomic_inc_return(&unix_auth.au_count) == 1)
-               unix_cred_cache.nextgc = jiffies + (unix_cred_cache.expire >> 1);
+       atomic_inc(&unix_auth.au_count);
        return &unix_auth;
 }
 
@@ -207,12 +204,17 @@ unx_validate(struct rpc_task *task, __be32 *p)
                printk("RPC: giant verf size: %u\n", size);
                return NULL;
        }
-       task->tk_auth->au_rslack = (size >> 2) + 2;
+       task->tk_msg.rpc_cred->cr_auth->au_rslack = (size >> 2) + 2;
        p += (size >> 2);
 
        return p;
 }
 
+void __init rpc_init_authunix(void)
+{
+       spin_lock_init(&unix_cred_cache.lock);
+}
+
 const struct rpc_authops authunix_ops = {
        .owner          = THIS_MODULE,
        .au_flavor      = RPC_AUTH_UNIX,
@@ -227,7 +229,6 @@ const struct rpc_authops authunix_ops = {
 
 static
 struct rpc_cred_cache  unix_cred_cache = {
-       .expire         = UNX_CRED_EXPIRE,
 };
 
 static