]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
afs: Always include dir in bulk status fetch from afs_do_lookup()
authorDavid Howells <dhowells@redhat.com>
Thu, 16 Apr 2020 13:20:32 +0000 (14:20 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 Jun 2020 15:49:14 +0000 (17:49 +0200)
commit2251a0f3d52ad065b92225fa90b42205df2c517a
treef9539133b2b6611dd019ffaa3bee29db4b5da929
parent72b655e21fcc99c0f1b17e2c3d9414d477b30dd2
afs: Always include dir in bulk status fetch from afs_do_lookup()

[ Upstream commit 13fcc6356a94558a0a4857dc00cd26b3834a1b3e ]

When a lookup is done in an AFS directory, the filesystem will speculate
and fetch up to 49 other statuses for files in the same directory and fetch
those as well, turning them into inodes or updating inodes that already
exist.

However, occasionally, a callback break might go missing due to NAT timing
out, but the afs filesystem doesn't then realise that the directory is not
up to date.

Alleviate this by using one of the status slots to check the directory in
which the lookup is being done.

Reported-by: Dave Botsch <botsch@cnf.cornell.edu>
Suggested-by: Jeffrey Altman <jaltman@auristor.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/afs/dir.c