diff options
author | David Howells | 2019-05-03 19:26:55 +0200 |
---|---|---|
committer | David Howells | 2019-05-15 18:35:54 +0200 |
commit | d0660f0b3b7d1760d1ab60ec8e9d0de52e885207 (patch) | |
tree | 9ab40b7b55492fbaeede2311afb643c5cadf2b75 /fs/afs | |
parent | afs: Fix afs_cell records to always have a VL server list record (diff) | |
download | kernel-qcow2-linux-d0660f0b3b7d1760d1ab60ec8e9d0de52e885207.tar.gz kernel-qcow2-linux-d0660f0b3b7d1760d1ab60ec8e9d0de52e885207.tar.xz kernel-qcow2-linux-d0660f0b3b7d1760d1ab60ec8e9d0de52e885207.zip |
dns_resolver: Allow used keys to be invalidated
Allow used DNS resolver keys to be invalidated after use if the caller is
doing its own caching of the results. This reduces the amount of resources
required.
Fix AFS to invalidate DNS results to kill off permanent failure records
that get lodged in the resolver keyring and prevent future lookups from
happening.
Fixes: 0a5143f2f89c ("afs: Implement VL server rotation")
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'fs/afs')
-rw-r--r-- | fs/afs/addr_list.c | 2 | ||||
-rw-r--r-- | fs/afs/dynroot.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/fs/afs/addr_list.c b/fs/afs/addr_list.c index 967db336d11a..9eaff55df7b4 100644 --- a/fs/afs/addr_list.c +++ b/fs/afs/addr_list.c @@ -251,7 +251,7 @@ struct afs_vlserver_list *afs_dns_query(struct afs_cell *cell, time64_t *_expiry _enter("%s", cell->name); ret = dns_query("afsdb", cell->name, cell->name_len, "srv=1", - &result, _expiry); + &result, _expiry, true); if (ret < 0) { _leave(" = %d [dns]", ret); return ERR_PTR(ret); diff --git a/fs/afs/dynroot.c b/fs/afs/dynroot.c index a9ba81ddf154..07484b5a3bbb 100644 --- a/fs/afs/dynroot.c +++ b/fs/afs/dynroot.c @@ -46,7 +46,7 @@ static int afs_probe_cell_name(struct dentry *dentry) return 0; } - ret = dns_query("afsdb", name, len, "srv=1", NULL, NULL); + ret = dns_query("afsdb", name, len, "srv=1", NULL, NULL, false); if (ret == -ENODATA) ret = -EDESTADDRREQ; return ret; |