Re: [PATCH v3 0/3] afs: Fix dynamic root interaction with failing DNS lookups

From: markus . suvanto
Date: Tue Dec 12 2023 - 14:54:01 EST


ti, 2023-12-12 kello 14:46 +0000, David Howells kirjoitti:
> Hi Markus, Marc,
>
> Here's a set of fixes to improve the interaction of arbitrary lookups in
> the AFS dynamic root that hit DNS lookup failures[1]:
>
> (1) Always delete unused (particularly negative) dentries as soon as
> possible so that they don't prevent future lookups from retrying.
>
> (2) Fix the handling of new-style negative DNS lookups in ->lookup() to
> make them return ENOENT so that userspace doesn't get confused when
> stat succeeds but the following open on the looked up file then fails.
>
> (3) Fix key handling so that DNS lookup results are reclaimed as soon as
> they expire rather than sitting round either forever or for an
> additional 5 mins beyond a set expiry time returning EKEYEXPIRED.
>
> The patches can be found here:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=afs-fixes
>
> Thanks,
> David
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=216637 [1]
> Link: https://lore.kernel.org/r/20231211163412.2766147-1-dhowells@xxxxxxxxxx # v1
> Link: https://lore.kernel.org/r/20231211213233.2793525-1-dhowells@xxxxxxxxxx # v2
>
> Changes
> =======
> ver #3)
> - Rebased to v6.7-rc5 which has an additional afs patch.
> - Don't add to TIME64_MAX (ie. permanent) when checking expiry time.
>
> ver #2)
> - Fix signed-unsigned comparison when checking return val.
>
> David Howells (3):
> afs: Fix the dynamic root's d_delete to always delete unused dentries
> afs: Fix dynamic root lookup DNS check
> keys, dns: Allow key types (eg. DNS) to be reclaimed immediately on
> expiry
>
> fs/afs/dynroot.c | 31 +++++++++++++++++--------------
> include/linux/key-type.h | 1 +
> net/dns_resolver/dns_key.c | 10 +++++++++-
> security/keys/gc.c | 31 +++++++++++++++++++++----------
> security/keys/internal.h | 11 ++++++++++-
> security/keys/key.c | 15 +++++----------
> security/keys/proc.c | 2 +-
> 7 files changed, 64 insertions(+), 37 deletions(-)
>

masu@t470 ~ % uname -r
6.7.0-rc5-gb946001d3bb1

This fixes my problem :) https://bugzilla.kernel.org/show_bug.cgi?id=216637

Tested-by: Markus Suvanto <markus.suvanto@xxxxxxxxx>

-Markus