lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251205132536.2703110-1-chenxiaosong.chenxiaosong@linux.dev>
Date: Fri,  5 Dec 2025 21:25:26 +0800
From: chenxiaosong.chenxiaosong@...ux.dev
To: sfrench@...ba.org,
	smfrench@...il.com,
	linkinjeon@...nel.org,
	linkinjeon@...ba.org
Cc: linux-cifs@...r.kernel.org,
	linux-kernel@...r.kernel.org,
	liuzhengyuan@...inos.cn,
	huhai@...inos.cn,
	liuyun01@...inos.cn,
	ChenXiaoSong <chenxiaosong@...inos.cn>
Subject: [PATCH v3 0/9] smb: improve search speed of SMB2 maperror

From: ChenXiaoSong <chenxiaosong@...inos.cn>

Before applying this patchset, when searching for the last element of
smb2_error_map_table array and calling smb2_print_status(),
3486 comparisons are needed.

After applying this patchset, only 10 comparisons are required.

v1: https://lore.kernel.org/linux-cifs/20251204045818.2590727-1-chenxiaosong.chenxiaosong@linux.dev/
The three patches from v1 have already been applied to the for-next branch of cifs-2.6.git.
Please replace the following patches:

  - [v1 01/10] smb/client: reduce loop count in map_smb2_to_linux_error() by half: https://git.samba.org/sfrench/?p=sfrench/cifs-2.6.git;a=commitdiff;h=26866d690bd180e1860548c43e70fdefe50638ff
    - Replace it with this version(v3) patch #0001: update commit message: array has 1743 elements

  - [v1 02/10] smb/client: remove unused elements from smb2_error_map_table array: https://git.samba.org/sfrench/?p=sfrench/cifs-2.6.git;a=commitdiff;h=905d8999d67dcbe4ce12ef87996e4440e068196d
    - It is the same as patch #0002 in this version(v3).

  - [v1 03/10] smb: add two elements to smb2_error_map_table array: https://git.samba.org/sfrench/?p=sfrench/cifs-2.6.git;a=commitdiff;h=ba521f56912f6ff5121e54c17c855298f947c9ea
    - Replace it with this version(v3) patch #0003 #0004.

v2: https://lore.kernel.org/all/20251205042958.2658496-1-chenxiaosong.chenxiaosong@linux.dev/
v2->v3:
  - Patch #0007: move struct status_to_posix_error to smb2glob.h,
                 change smb2_get_err_map to be a global function,
                 delete unused forward declaration `struct statfs` in smb2proto.h.
  - Patch #0008: create new smb2maperror_test.c, refer to the implementation in fs/ext4/mballoc-test.c.

ChenXiaoSong (9):
  smb/client: reduce loop count in map_smb2_to_linux_error() by half
  smb/client: remove unused elements from smb2_error_map_table array
  smb: rename to STATUS_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP
  smb/client: add two elements to smb2_error_map_table array
  smb/client: sort smb2_error_map_table array
  smb/client: use bsearch() to find target status code
  smb/client: introduce smb2_get_err_map()
  smb/client: introduce smb2maperror KUnit tests
  smb/server: rename include guard in smb_common.h

 fs/smb/Kconfig                    | 17 ++++++
 fs/smb/client/cifsfs.c            |  2 +
 fs/smb/client/smb2glob.h          |  6 ++
 fs/smb/client/smb2maperror.c      | 91 ++++++++++++++++++-------------
 fs/smb/client/smb2maperror_test.c | 86 +++++++++++++++++++++++++++++
 fs/smb/client/smb2proto.h         |  4 +-
 fs/smb/common/smb2status.h        |  5 +-
 fs/smb/server/smb2pdu.c           |  2 +-
 fs/smb/server/smb_common.h        |  6 +-
 9 files changed, 174 insertions(+), 45 deletions(-)
 create mode 100644 fs/smb/client/smb2maperror_test.c

-- 
2.43.0


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ