]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - security/keys/internal.h
KEYS: Use structure to capture key restriction function and data
[mirror_ubuntu-artful-kernel.git] / security / keys / internal.h
index a705a7d92ad7a95ca513ae2d3da8a18879196a2a..24762ae9a198b07292dadd3fb02e1d9554d725de 100644 (file)
 #define _INTERNAL_H
 
 #include <linux/sched.h>
+#include <linux/cred.h>
 #include <linux/key-type.h>
 #include <linux/task_work.h>
 #include <linux/keyctl.h>
+#include <linux/refcount.h>
 
 struct iovec;
 
@@ -52,7 +54,7 @@ struct key_user {
        struct rb_node          node;
        struct mutex            cons_lock;      /* construction initiation lock */
        spinlock_t              lock;
-       atomic_t                usage;          /* for accessing qnkeys & qnbytes */
+       refcount_t              usage;          /* for accessing qnkeys & qnbytes */
        atomic_t                nkeys;          /* number of keys */
        atomic_t                nikeys;         /* number of instantiated keys */
        kuid_t                  uid;
@@ -166,6 +168,8 @@ extern void key_change_session_keyring(struct callback_head *twork);
 extern struct work_struct key_gc_work;
 extern unsigned key_gc_delay;
 extern void keyring_gc(struct key *keyring, time_t limit);
+extern void keyring_restriction_gc(struct key *keyring,
+                                  struct key_type *dead_type);
 extern void key_schedule_gc(time_t gc_at);
 extern void key_schedule_gc_links(void);
 extern void key_gc_keytype(struct key_type *ktype);