summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2020-04-08 19:32:10 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-04-23 11:37:56 +0300
commit68935b7f66d6feeab4552c97e89632e20d62c0a9 (patch)
tree3b2f0acca6f5ccede86de3b7fed9f17804ece082
parenteb3723a89384433ad18f68bd7dc7f37c9bbc2433 (diff)
downloadlinux-68935b7f66d6feeab4552c97e89632e20d62c0a9.tar.xz
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--fs/afs/fsclient.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/afs/fsclient.c b/fs/afs/fsclient.c
index fae73e13976a..de4331670c84 100644
--- a/fs/afs/fsclient.c
+++ b/fs/afs/fsclient.c
@@ -88,6 +88,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;
}