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: c435ee3455
("afs: Overhaul the callback handling")
Signed-off-by: David Howells <dhowells@redhat.com>
This commit is contained in:
@@ -261,7 +261,7 @@ static void xdr_decode_AFSCallBack(struct afs_call *call,
|
||||
|
||||
write_seqlock(&vnode->cb_lock);
|
||||
|
||||
if (call->cb_break == (vnode->cb_break + cbi->server->cb_s_break)) {
|
||||
if (call->cb_break == afs_cb_break_sum(vnode, cbi)) {
|
||||
vnode->cb_version = ntohl(*bp++);
|
||||
cb_expiry = ntohl(*bp++);
|
||||
vnode->cb_type = ntohl(*bp++);
|
||||
|
Reference in New Issue
Block a user