return strcmp(key->description, description) == 0;
}
+static void afs_pag_destroy(struct key *key)
+{
+ afs_uint32 pag = key->payload.value;
+ struct unixuser *pu;
+
+ pu = afs_FindUser(pag, -1, READ_LOCK);
+ if (pu) {
+ pu->ct.EndTimestamp = 0;
+ pu->tokenTime = 0;
+ afs_PutUser(pu, READ_LOCK);
+ }
+}
+
struct key_type key_type_afs_pag =
{
.name = "afs_pag",
.describe = afs_pag_describe,
.instantiate = afs_pag_instantiate,
.match = afs_pag_match,
+ .destroy = afs_pag_destroy,
};
void osi_keyring_init(void)
#endif
#if defined(AFS_LINUX22_ENV)
-extern rwlock_t tasklist_lock __attribute__((weak));
void
afs_osi_TraverseProcTable()
{
+#if !defined(LINUX_KEYRING_SUPPORT)
+ extern rwlock_t tasklist_lock __attribute__((weak));
struct task_struct *p;
+
if (&tasklist_lock)
read_lock(&tasklist_lock);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
else
rcu_read_unlock();
#endif
+#endif
}
#endif