]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
afs: Fix unpinned address list during probing
authorDavid Howells <dhowells@redhat.com>
Thu, 26 Mar 2020 15:24:07 +0000 (15:24 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Apr 2020 09:00:15 +0000 (11:00 +0200)
commit1ffb4559dbeac021b762364885bf750ad18ed03b
treeabe1e215102578b609c98cdb171d3a530304ed58
parent3cb7eda5806838c4ec9b0387c489e0e7d8101a44
afs: Fix unpinned address list during probing

commit 9efcc4a129363187c9bf15338692f107c5c9b6f0 upstream.

When it's probing all of a fileserver's interfaces to find which one is
best to use, afs_do_probe_fileserver() takes a lock on the server record
and notes the pointer to the address list.

It doesn't, however, pin the address list, so as soon as it drops the
lock, there's nothing to stop the address list from being freed under
us.

Fix this by taking a ref on the address list inside the locked section
and dropping it at the end of the function.

Fixes: 3bf0fb6f33dd ("afs: Probe multiple fileservers simultaneously")
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Marc Dionne <marc.dionne@auristor.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/afs/fs_probe.c