]> git.baikalelectronics.ru Git - kernel.git/commit
afs: Fix manually set volume location server list
authorDavid Howells <dhowells@redhat.com>
Thu, 21 Feb 2019 22:04:32 +0000 (22:04 +0000)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 25 Feb 2019 19:59:07 +0000 (11:59 -0800)
commit2343c5b106655be36554cb5866d77a070e158890
treeb97efe5d1d719283a95fcbce623160524723c587
parent2aa9ef5ea6de6c96bc43af8c34e67017f492a92b
afs: Fix manually set volume location server list

When a cell with a volume location server list is added manually by
echoing the details into /proc/net/afs/cells, a record is added but the
flag saying it has been looked up isn't set.

This causes the VL server rotation code to wait forever, with the top of
/proc/pid/stack looking like:

afs_select_vlserver+0x3a6/0x6f3
afs_vl_lookup_vldb+0x4b/0x92
afs_create_volume+0x25/0x1b9
...

with the thread stuck in afs_start_vl_iteration() waiting for
AFS_CELL_FL_NO_LOOKUP_YET to be cleared.

Fix this by clearing AFS_CELL_FL_NO_LOOKUP_YET when setting up a record
if that record's details were supplied manually.

Fixes: a0580bb664fc ("afs: Implement VL server rotation")
Reported-by: Dave Botsch <dwb7@cornell.edu>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/afs/cell.c