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

From: Luis Henriques
Date: Mon Feb 05 2024 - 08:55:23 EST


David Howells <dhowells@xxxxxxxxxx> writes:

> 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.
>

That's awesome, thanks a lot David. And, as Eric requested, I'll send out
shortly a follow-up fscrypt-specific patch, which will make generic/581
fstest finally pass.

Cheers,
--
Luís


>> 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?
>