Commit 6d08851c authored by Pali Rohár's avatar Pali Rohár Committed by Steve French
Browse files

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: default avatarPali Rohár <pali@kernel.org>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent 014fdae6
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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++;
	}