| From dc157548bdf5cc9266687bd447b35d00142f5b9b Mon Sep 17 00:00:00 2001 |
| From: David Howells <dhowells@redhat.com> |
| Date: Wed, 8 Apr 2020 17:32:10 +0100 |
| Subject: [PATCH] afs: Fix decoding of inline abort codes from version 1 status |
| records |
| |
| commit 3e0d9892c0e7fa426ca6bf921cb4b543ca265714 upstream. |
| |
| If we're decoding an AFSFetchStatus record and we see that the version is 1 |
| and the abort code is set and we're expecting inline errors, then we store |
| the abort code and ignore the remaining status record (which is correct), |
| but we don't set the flag to say we got a valid abort code. |
| |
| This can affect operation of YFS.RemoveFile2 when removing a file and the |
| operation of {,Y}FS.InlineBulkStatus when prospectively constructing or |
| updating of a set of inodes during a lookup. |
| |
| Fix this to indicate the reception of a valid abort code. |
| |
| Fixes: a38a75581e6e ("afs: Fix unlink to handle YFS.RemoveFile2 better") |
| Signed-off-by: David Howells <dhowells@redhat.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/fs/afs/fsclient.c b/fs/afs/fsclient.c |
| index 451c709e1f50..00ef33bd3464 100644 |
| --- a/fs/afs/fsclient.c |
| +++ b/fs/afs/fsclient.c |
| @@ -90,6 +90,7 @@ static int xdr_decode_AFSFetchStatus(const __be32 **_bp, |
| |
| if (abort_code != 0 && inline_error) { |
| status->abort_code = abort_code; |
| + scb->have_error = true; |
| goto good; |
| } |
| |
| -- |
| 2.7.4 |
| |