]> 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)
commita2230a6142f5c5aeccb39b7369e0041925819a1f
treefbdb5d1e2e32e4a3ec9c695f000d295b36138c2e
parentfc212d10faed804b8e8d8c19ae765a4af7a55c01
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: 6769c742a244 ("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