]> git.baikalelectronics.ru Git - kernel.git/commit
afs: Fix application of the results of a inline bulk status fetch
authorDavid Howells <dhowells@redhat.com>
Tue, 14 May 2019 11:33:10 +0000 (12:33 +0100)
committerDavid Howells <dhowells@redhat.com>
Thu, 16 May 2019 21:23:21 +0000 (22:23 +0100)
commitac2f4fd0939a7a8a469bec257b676ae7eb2cf888
treefbdb5d1e2e32e4a3ec9c695f000d295b36138c2e
parentcd57edd043ae168a0fadb4ebe2bc72800dc45fd8
afs: Fix application of the results of a inline bulk status fetch

Fix afs_do_lookup() such that when it does an inline bulk status fetch op,
it will update inodes that are already extant (something that afs_iget()
doesn't do) and to cache permits for each inode created (thereby avoiding a
follow up FS.FetchStatus call to determine this).

Extant inodes need looking up in advance so that their cb_break counters
before and after the operation can be compared.  To this end, the inode
pointers are cached so that they don't need looking up again after the op.

Fixes: a95990104d08 ("afs: Prospectively look up extra files when doing a single lookup")
Signed-off-by: David Howells <dhowells@redhat.com>
fs/afs/afs.h
fs/afs/dir.c