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

markus.suvanto at gmail.com markus.suvanto at gmail.com
Tue Dec 12 11:53:48 PST 2023


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@redhat.com # v1
> Link: https://lore.kernel.org/r/20231211213233.2793525-1-dhowells@redhat.com # 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 at 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 at gmail.com>

-Markus





More information about the linux-afs mailing list