Re: [PATCH v3] keys: update key quotas in key_put()

From: David Howells
Date: Mon Feb 05 2024 - 07:07:03 EST


Luis Henriques <lhenriques@xxxxxxx> wrote:

> Delaying key quotas update when key's refcount reaches 0 in key_put() has
> been causing some issues in fscrypt testing, specifically in fstest
> generic/581. This commit fixes this test flakiness by dealing with the
> quotas immediately, and leaving all the other clean-ups to the key garbage
> collector.

Okay, I'll accept this.

> This is done by moving the updates to the qnkeys and qnbytes fields in
> struct key_user from key_gc_unused_keys() into key_put(). Unfortunately,
> this also means that we need to switch to the irq-version of the spinlock
> that protects these fields and use spin_lock_{irqsave,irqrestore} in all the
> code that touches these fields.

.. Which shouldn't be that often. It only happens when a key is created or
finally let go of.

> Signed-off-by: Luis Henriques <lhenriques@xxxxxxx>

Acked-by: David Howells <dhowells@xxxxxxxxxx>

Jarkko - could you pick this up?