diff options
author | David Howells <dhowells@redhat.com> | 2018-05-13 00:31:33 +0300 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2018-05-14 17:15:18 +0300 |
commit | 68251f0a6818f3be19b1471f36c956ca97c1427d (patch) | |
tree | 1e4fb0cacb40aff37e9f0177a772c6509631afec /fs/afs/write.c | |
parent | f9c1bba3d392843f046d2ee27b4dfcec989d8a4b (diff) | |
download | linux-68251f0a6818f3be19b1471f36c956ca97c1427d.tar.xz |
afs: Fix whole-volume callback handling
It's possible for an AFS file server to issue a whole-volume notification
that callbacks on all the vnodes in the file have been broken. This is
done for R/O and backup volumes (which don't have per-file callbacks) and
for things like a volume being taken offline.
Fix callback handling to detect whole-volume notifications, to track it
across operations and to check it during inode validation.
Fixes: c435ee34551e ("afs: Overhaul the callback handling")
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'fs/afs/write.c')
-rw-r--r-- | fs/afs/write.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/afs/write.c b/fs/afs/write.c index c164698dc304..8b39e6ebb40b 100644 --- a/fs/afs/write.c +++ b/fs/afs/write.c @@ -351,7 +351,7 @@ found_key: ret = -ERESTARTSYS; if (afs_begin_vnode_operation(&fc, vnode, wbk->key)) { while (afs_select_fileserver(&fc)) { - fc.cb_break = vnode->cb_break + vnode->cb_s_break; + fc.cb_break = afs_calc_vnode_cb_break(vnode); afs_fs_store_data(&fc, mapping, first, last, offset, to); } |