diff mbox series

afs: Fix the fallback handling for the YFS.RemoveFile2 RPC call

Message ID 109541.1736865963@warthog.procyon.org.uk (mailing list archive)
State New
Headers show
Series afs: Fix the fallback handling for the YFS.RemoveFile2 RPC call | expand

Commit Message

David Howells Jan. 14, 2025, 2:46 p.m. UTC
Fix a pair of bugs in the fallback handling for the YFS.RemoveFile2 RPC
call:

 (1) Fix the abort code check to also look for RXGEN_OPCODE.  The lack of
     this masks the second bug.

 (2) call->server is now not used for ordinary filesystem RPC calls that
     have an operation descriptor.  Fix to use call->op->server instead.

Fixes: e49c7b2f6de7 ("afs: Build an abstraction around an "operation" concept")
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
---
 fs/afs/yfsclient.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Christian Brauner Jan. 15, 2025, 10:47 a.m. UTC | #1
On Tue, 14 Jan 2025 14:46:03 +0000, David Howells wrote:
> Fix a pair of bugs in the fallback handling for the YFS.RemoveFile2 RPC
> call:
> 
>  (1) Fix the abort code check to also look for RXGEN_OPCODE.  The lack of
>      this masks the second bug.
> 
>  (2) call->server is now not used for ordinary filesystem RPC calls that
>      have an operation descriptor.  Fix to use call->op->server instead.
> 
> [...]

Applied to the vfs-6.14.afs branch of the vfs/vfs.git tree.
Patches in the vfs-6.14.afs branch should appear in linux-next soon.

Please report any outstanding bugs that were missed during review in a
new review to the original patch series allowing us to drop it.

It's encouraged to provide Acked-bys and Reviewed-bys even though the
patch has now been applied. If possible patch trailers will be updated.

Note that commit hashes shown below are subject to change due to rebase,
trailer updates or similar. If in doubt, please check the listed branch.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git
branch: vfs-6.14.afs

[1/1] afs: Fix the fallback handling for the YFS.RemoveFile2 RPC call
      https://git.kernel.org/vfs/vfs/c/e30458d690f3
diff mbox series

Patch

diff --git a/fs/afs/yfsclient.c b/fs/afs/yfsclient.c
index 024227aba4cd..362845f9aaae 100644
--- a/fs/afs/yfsclient.c
+++ b/fs/afs/yfsclient.c
@@ -666,8 +666,9 @@  static int yfs_deliver_fs_remove_file2(struct afs_call *call)
 static void yfs_done_fs_remove_file2(struct afs_call *call)
 {
 	if (call->error == -ECONNABORTED &&
-	    call->abort_code == RX_INVALID_OPERATION) {
-		set_bit(AFS_SERVER_FL_NO_RM2, &call->server->flags);
+	    (call->abort_code == RX_INVALID_OPERATION ||
+	     call->abort_code == RXGEN_OPCODE)) {
+		set_bit(AFS_SERVER_FL_NO_RM2, &call->op->server->flags);
 		call->op->flags |= AFS_OPERATION_DOWNGRADE;
 	}
 }