afs: Add missing afs_put_cell()
authorDavid Howells <dhowells@redhat.com>
Tue, 6 Feb 2018 09:26:27 +0000 (09:26 +0000)
committerDavid Howells <dhowells@redhat.com>
Tue, 6 Feb 2018 14:22:03 +0000 (14:22 +0000)
commite44150157f42219fa5c074588efdb31ccfb197fc
tree892598b818e0f062821a55a4b914aeecbd9d51f5
parente237f98a9c134c3d600353f21e07db915516875b
afs: Add missing afs_put_cell()

afs_alloc_volume() needs to release the cell ref it obtained in the case of
an error.  Fix this by adding an afs_put_cell() call into the error path.

This can triggered when a lookup for a cell in a dynamic root or an
autocell mount returns an error whilst trying to look up the server (such
as ENOMEDIUM).  This results in an assertion failure oops when the module
is unloaded due to outstanding refs on a cell record.

Fixes: d2ddc776a458 ("afs: Overhaul volume and server record caching and fileserver rotation")
Signed-off-by: David Howells <dhowells@redhat.com>
cc: stable@vger.kernel.org
fs/afs/volume.c