On Thu, Nov 16, 2023 at 11:53 AM David Howells <dhowells@xxxxxxxxxx> wrote: > > When kafs tries to look up a cell in the DNS or the local config, it will > translate a lookup failure into EDESTADDRREQ whereas OpenAFS translates it > into ENOENT. Applications such as West expect the latter behaviour and > fail if they see the former. > > This can be seen by trying to mount an unknown cell: > > # mount -t afs %example.com:cell.root /mnt > mount: /mnt: mount(2) system call failed: Destination address required. > > Fixes: 4d673da14533 ("afs: Support the AFS dynamic root") > Reported-by: Markus Suvanto <markus.suvanto@xxxxxxxxx> > Link: https://bugzilla.kernel.org/show_bug.cgi?id=216637 > Signed-off-by: David Howells <dhowells@xxxxxxxxxx> > Reviewed-by: Jeffrey Altman <jaltman@xxxxxxxxxxxx> > cc: Marc Dionne <marc.dionne@xxxxxxxxxxxx> > cc: linux-afs@xxxxxxxxxxxxxxxxxxx > --- > fs/afs/dynroot.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/afs/dynroot.c b/fs/afs/dynroot.c > index 4d04ef2d3ae7..1fa8cf23bd36 100644 > --- a/fs/afs/dynroot.c > +++ b/fs/afs/dynroot.c > @@ -132,8 +132,8 @@ static int afs_probe_cell_name(struct dentry *dentry) > > ret = dns_query(net->net, "afsdb", name, len, "srv=1", > NULL, NULL, false); > - if (ret == -ENODATA) > - ret = -EDESTADDRREQ; > + if (ret == -ENODATA || ret == -ENOKEY) > + ret = -ENOENT; > return ret; > } Reviewed-by: Marc Dionne <marc.dionne@xxxxxxxxxxxx> Marc