diff options
author | 2024-12-26 14:27:16 +0100 | |
---|---|---|
committer | 2025-01-19 19:46:42 -0600 | |
commit | 6d08851c601328025615d779c08753067ecefa34 (patch) | |
tree | 978feb540547cb7b0f5406b78ca62cc176aa581a | |
parent | cifs: Add missing NT_STATUS_* codes from nterr.h to nterr.c (diff) | |
download | wireguard-linux-6d08851c601328025615d779c08753067ecefa34.tar.xz wireguard-linux-6d08851c601328025615d779c08753067ecefa34.zip |
cifs: Fix printing Status code into dmesg
NT Status code is 32-bit number, so for comparing two NT Status codes is
needed to check all 32 bits, and not just low 24 bits.
Before this change kernel printed message:
"Status code returned 0x8000002d NT_STATUS_NOT_COMMITTED"
It was incorrect as because NT_STATUS_NOT_COMMITTED is defined as
0xC000002d and 0x8000002d has defined name NT_STATUS_STOPPED_ON_SYMLINK.
With this change kernel prints message:
"Status code returned 0x8000002d NT_STATUS_STOPPED_ON_SYMLINK"
Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
-rw-r--r-- | fs/smb/client/netmisc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/smb/client/netmisc.c b/fs/smb/client/netmisc.c index 2a8d71221e5e..17b3e21ea868 100644 --- a/fs/smb/client/netmisc.c +++ b/fs/smb/client/netmisc.c @@ -775,10 +775,10 @@ cifs_print_status(__u32 status_code) int idx = 0; while (nt_errs[idx].nt_errstr != NULL) { - if (((nt_errs[idx].nt_errcode) & 0xFFFFFF) == - (status_code & 0xFFFFFF)) { + if (nt_errs[idx].nt_errcode == status_code) { pr_notice("Status code returned 0x%08x %s\n", status_code, nt_errs[idx].nt_errstr); + return; } idx++; } |