the argument will not be parsed.
 
 
-(*) Extra references can be made to a key by calling the following function:
+(*) Extra references can be made to a key by calling one of the following
+    functions:
 
+       struct key *__key_get(struct key *key);
        struct key *key_get(struct key *key);
 
-    These need to be disposed of by calling key_put() when they've been
-    finished with. The key pointer passed in will be returned. If the pointer
-    is NULL or CONFIG_KEYS is not set then the key will not be dereferenced and
-    no increment will take place.
+    Keys so references will need to be disposed of by calling key_put() when
+    they've been finished with.  The key pointer passed in will be returned.
+
+    In the case of key_get(), if the pointer is NULL or CONFIG_KEYS is not set
+    then the key will not be dereferenced and no increment will take place.
 
 
 (*) A key's serial number can be obtained by calling:
 
 extern void key_invalidate(struct key *key);
 extern void key_put(struct key *key);
 
-static inline struct key *key_get(struct key *key)
+static inline struct key *__key_get(struct key *key)
 {
-       if (key)
-               atomic_inc(&key->usage);
+       atomic_inc(&key->usage);
        return key;
 }
 
+static inline struct key *key_get(struct key *key)
+{
+       return key ? __key_get(key) : key;
+}
+
 static inline void key_ref_put(key_ref_t key_ref)
 {
        key_put(key_ref_to_ptr(key_ref));
 
        /* this races with key_put(), but that doesn't matter since key_put()
         * doesn't actually change the key
         */
-       atomic_inc(&key->usage);
+       __key_get(key);
 
 error:
        spin_unlock(&key_serial_lock);
 
 
        /* we found a viable match */
 found:
-       atomic_inc(&key->usage);
+       __key_get(key);
        key->last_used_at = ctx->now.tv_sec;
        keyring->last_used_at = ctx->now.tv_sec;
        while (sp > 0)
        return ERR_PTR(-ENOKEY);
 
 found:
-       atomic_inc(&key->usage);
+       __key_get(key);
        keyring->last_used_at = key->last_used_at =
                current_kernel_time().tv_sec;
        rcu_read_unlock();
 
        klist = rcu_dereference_locked_keyring(keyring);
 
-       atomic_inc(&key->usage);
+       __key_get(key);
        keyring->last_used_at = key->last_used_at =
                current_kernel_time().tv_sec;
 
 
                if (IS_ERR(keyring))
                        return PTR_ERR(keyring);
        } else {
-               atomic_inc(&keyring->usage);
+               __key_get(keyring);
        }
 
        /* install the keyring */
                }
 
                key = ctx.cred->thread_keyring;
-               atomic_inc(&key->usage);
+               __key_get(key);
                key_ref = make_key_ref(key, 1);
                break;
 
                }
 
                key = ctx.cred->process_keyring;
-               atomic_inc(&key->usage);
+               __key_get(key);
                key_ref = make_key_ref(key, 1);
                break;
 
 
                rcu_read_lock();
                key = rcu_dereference(ctx.cred->session_keyring);
-               atomic_inc(&key->usage);
+               __key_get(key);
                rcu_read_unlock();
                key_ref = make_key_ref(key, 1);
                break;
                }
 
                key = ctx.cred->user->uid_keyring;
-               atomic_inc(&key->usage);
+               __key_get(key);
                key_ref = make_key_ref(key, 1);
                break;
 
                }
 
                key = ctx.cred->user->session_keyring;
-               atomic_inc(&key->usage);
+               __key_get(key);
                key_ref = make_key_ref(key, 1);
                break;
 
                if (!key)
                        goto error;
 
-               atomic_inc(&key->usage);
+               __key_get(key);
                key_ref = make_key_ref(key, 1);
                break;
 
                } else {
                        rka = ctx.cred->request_key_auth->payload.data;
                        key = rka->dest_keyring;
-                       atomic_inc(&key->usage);
+                       __key_get(key);
                }
                up_read(&ctx.cred->request_key_auth->sem);
                if (!key)