Lines Matching full:user
47 * Get the key quota record for a user, allocating a new record if one doesn't
52 struct key_user *candidate = NULL, *user; in key_user_lookup() local
60 /* search the tree for a user record with a matching UID */ in key_user_lookup()
63 user = rb_entry(parent, struct key_user, node); in key_user_lookup()
65 if (uid_lt(uid, user->uid)) in key_user_lookup()
67 else if (uid_gt(uid, user->uid)) in key_user_lookup()
75 /* allocate a candidate user record if we don't already have in key_user_lookup()
79 user = NULL; in key_user_lookup()
90 /* if we get here, then the user record still hadn't appeared on the in key_user_lookup()
104 user = candidate; in key_user_lookup()
107 /* okay - we found a user record for this UID */ in key_user_lookup()
109 refcount_inc(&user->usage); in key_user_lookup()
113 return user; in key_user_lookup()
117 * Dispose of a user structure
119 void key_user_put(struct key_user *user) in key_user_put() argument
121 if (refcount_dec_and_lock(&user->usage, &key_user_lock)) { in key_user_put()
122 rb_erase(&user->node, &key_user_tree); in key_user_put()
125 kfree(user); in key_user_put()
209 * The user's key count quota is updated to reflect the creation of the key and
210 * the user's key data quota has the default for the key type reserved. The
229 struct key_user *user = NULL; in key_alloc() local
250 /* get hold of the key tracking for this user */ in key_alloc()
251 user = key_user_lookup(uid); in key_alloc()
252 if (!user) in key_alloc()
255 /* check that the user's quota permits allocation of another key and in key_alloc()
263 spin_lock_irqsave(&user->lock, irqflags); in key_alloc()
265 if (user->qnkeys + 1 > maxkeys || in key_alloc()
266 user->qnbytes + quotalen > maxbytes || in key_alloc()
267 user->qnbytes + quotalen < user->qnbytes) in key_alloc()
271 user->qnkeys++; in key_alloc()
272 user->qnbytes += quotalen; in key_alloc()
273 spin_unlock_irqrestore(&user->lock, irqflags); in key_alloc()
291 key->user = user; in key_alloc()
321 atomic_inc(&user->nkeys); in key_alloc()
331 spin_lock_irqsave(&user->lock, irqflags); in key_alloc()
332 user->qnkeys--; in key_alloc()
333 user->qnbytes -= quotalen; in key_alloc()
334 spin_unlock_irqrestore(&user->lock, irqflags); in key_alloc()
336 key_user_put(user); in key_alloc()
344 spin_lock_irqsave(&user->lock, irqflags); in key_alloc()
345 user->qnkeys--; in key_alloc()
346 user->qnbytes -= quotalen; in key_alloc()
347 spin_unlock_irqrestore(&user->lock, irqflags); in key_alloc()
349 key_user_put(user); in key_alloc()
355 spin_unlock_irqrestore(&user->lock, irqflags); in key_alloc()
356 key_user_put(user); in key_alloc()
367 * Adjust the amount of the owning user's key data quota that a key reserves.
382 unsigned maxbytes = uid_eq(key->user->uid, GLOBAL_ROOT_UID) ? in key_payload_reserve()
386 spin_lock_irqsave(&key->user->lock, flags); in key_payload_reserve()
389 (key->user->qnbytes + delta > maxbytes || in key_payload_reserve()
390 key->user->qnbytes + delta < key->user->qnbytes)) { in key_payload_reserve()
394 key->user->qnbytes += delta; in key_payload_reserve()
397 spin_unlock_irqrestore(&key->user->lock, flags); in key_payload_reserve()
449 atomic_inc(&key->user->nikeys); in __key_instantiate_and_link()
606 atomic_inc(&key->user->nikeys); in key_reject_and_link()
654 /* deal with the user's key tracking and quota */ in key_put()
656 spin_lock_irqsave(&key->user->lock, flags); in key_put()
657 key->user->qnkeys--; in key_put()
658 key->user->qnbytes -= key->quotalen; in key_put()
659 spin_unlock_irqrestore(&key->user->lock, flags); in key_put()
661 smp_mb(); /* key->user before FINAL_PUT set. */ in key_put()
1285 /* record the root user tracking */ in key_init()