summaryrefslogtreecommitdiffstats
path: root/fs/afs/afs.h
diff options
context:
space:
mode:
authorDavid Howells2019-05-14 13:33:10 +0200
committerDavid Howells2019-05-16 23:23:21 +0200
commit39db9815da489b47b50b8e6e4fc7566a77bd18bf (patch)
treefbdb5d1e2e32e4a3ec9c695f000d295b36138c2e /fs/afs/afs.h
parentafs: Pass pre-fetch server and volume break counts into afs_iget5_set() (diff)
downloadkernel-qcow2-linux-39db9815da489b47b50b8e6e4fc7566a77bd18bf.tar.gz
kernel-qcow2-linux-39db9815da489b47b50b8e6e4fc7566a77bd18bf.tar.xz
kernel-qcow2-linux-39db9815da489b47b50b8e6e4fc7566a77bd18bf.zip
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: 5cf9dd55a0ec ("afs: Prospectively look up extra files when doing a single lookup") Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'fs/afs/afs.h')
-rw-r--r--fs/afs/afs.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/afs/afs.h b/fs/afs/afs.h
index a7d3f902a91c..3f4e460c6655 100644
--- a/fs/afs/afs.h
+++ b/fs/afs/afs.h
@@ -150,6 +150,7 @@ struct afs_file_status {
struct afs_status_cb {
struct afs_file_status status;
struct afs_callback callback;
+ unsigned int cb_break; /* Pre-op callback break counter */
bool have_status; /* True if status record was retrieved */
bool have_cb; /* True if cb record was retrieved */
bool have_error; /* True if status.abort_code indicates an error */