summaryrefslogtreecommitdiffstats
path: root/fs/afs
diff options
context:
space:
mode:
authorDavid Howells2019-05-03 19:26:55 +0200
committerDavid Howells2019-05-15 18:35:54 +0200
commitd0660f0b3b7d1760d1ab60ec8e9d0de52e885207 (patch)
tree9ab40b7b55492fbaeede2311afb643c5cadf2b75 /fs/afs
parentafs: Fix afs_cell records to always have a VL server list record (diff)
downloadkernel-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.c2
-rw-r--r--fs/afs/dynroot.c2
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;