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-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5057d4fd-1449-4f68-b847-f8b791de2be6@talpey.com>
Date: Mon, 1 Dec 2025 17:27:07 -0500
From: Tom Talpey <tom@...pey.com>
To: David Howells <dhowells@...hat.com>, Steve French <sfrench@...ba.org>
Cc: Paulo Alcantara <pc@...guebit.org>, Shyam Prasad N
 <sprasad@...rosoft.com>, Stefan Metzmacher <metze@...ba.org>,
 linux-cifs@...r.kernel.org, netfs@...ts.linux.dev,
 linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v5 0/9] cifs: Miscellaneous prep patches for rewrite of
 I/O layer

I've (re)reviewed the patches and am ok with #2 (which I already gave an 
R-B for), and additionally #4 looks especially good. These changes are 
very appropriate for the previously missing layering.

I like the idea of #1, but I'm a little bit on the fence on the code 
impact of the rename. If Steve's not opposed, I'm ok with it.

The others are all worthy.

For #2 and #4: Reviewed-by: Tom Talpey <tom@...pey.com>

For the others, feel free to my Acked-by.

Tom.

On 12/1/2025 4:49 AM, David Howells wrote:
> Hi Steve,
> 
> Could you take these patches extracted from my I/O layer rewrite for the
> upcoming merge window.  The performance change should be neutral, but it
> cleans up the code a bit.
> 
>   (1) Rename struct mid_q_entry to smb_message.  In my rewrite, smb_message
>       will get allocated in the marshalling functions in smb2pdu.c and
>       cifssmb.c rather than in transport.c and used to hand parameters down
>       - and so I think it could be better named for that.
> 
>   (2) Remove the RFC1002 header from the smb_hdr struct so that it's
>       consistent with SMB2/3.  This allows I/O routines to be simplified and
>       shared.
> 
>   (3) Make SMB1's SendReceive() wrap cifs_send_recv() and thus share code
>       with SMB2/3.
> 
>   (4) Clean up a bunch of extra kvec[] that were required for RFC1002
>       headers from SMB1's header struct.
> 
>   (5) Replace SendReceiveBlockingLock() with SendReceive() plus flags.
> 
>   (6) Remove the server pointer from smb_message.  It can be passed down
>       from the caller to all places that need it.
> 
>   (7) Don't need state locking in smb2_get_mid_entry() as we're just doing a	
>       single read inside the lock.  READ_ONCE() should suffice instead.
> 
>   (8) Add a tracepoint to log EIO errors and up to a couple of bits of info
>       for each to make it easier to find out why an EIO error happened when
>       the system is very busy without introducing printk delays.
> 
>   (9) Make some minor code cleanups.
> 
> The patches will be found here also when the git server is accessible
> again:
> 
> 	https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=cifs-next
> 
> Thanks,
> David
> 
> Changes
> =======
> ver #5)
>   - Rebased on the ksmbd-for-next branch.
>   - Drop the netfs_alloc patch as that's now taken.
>   - Added a warning check requested by Stefan Metzmacher.
>   - Switched to a branch without the header prototype cleanups.
>   - Add a patch to make some minor code cleanups.
>   - Don't do EIO changed in smbdirect.c as that interferes with Stefan's
>     changes.
> 
> ver #4)
>   - Rebased on the ksmbd-for-next branch.
>   - The read tracepoint patch got merged, so drop it.
>   - Move the netfs_alloc, etc. patch first.
>   - Fix a couple of prototypes that need to be conditional (may need some
>     post cleanup).
>   - Fixed another couple of headers that needed their own prototype lists.
>   - Fixed #include order in a couple of places.
> 
> ver #3)
>   - Rebased on the ksmbd-for-next branch.
>   - Add the patches to clean up the function prototypes in the headers.
>     - Don't touch smbdirect.
>     - Put prototypes into netlink.h and cached_dir.h rather than
>       centralising them.
>     - Indent the arguments in the prototypes to the opening bracket + 1.
>   - Cleaned up most other checkpatch complaints.
>   - Added the EIO tracepoint patch to the end.
> 
> ver #2)
>   - Rebased on the ksmbd-for-next-next branch.
>   - Moved the patch to use netfs_alloc/free_folioq_buffer() down the stack.
> 
> David Howells (9):
>    cifs: Rename mid_q_entry to smb_message
>    cifs: Remove the RFC1002 header from smb_hdr
>    cifs: Make smb1's SendReceive() wrap cifs_send_recv()
>    cifs: Clean up some places where an extra kvec[] was required for
>      rfc1002
>    cifs: Replace SendReceiveBlockingLock() with SendReceive() plus flags
>    cifs: Remove the server pointer from smb_message
>    cifs: Don't need state locking in smb2_get_mid_entry()
>    cifs: Add a tracepoint to log EIO errors
>    cifs: Do some preparation prior to organising the function
>      declarations
> 
>   fs/smb/client/cached_dir.c    |   2 +-
>   fs/smb/client/cifs_debug.c    |  51 +-
>   fs/smb/client/cifs_debug.h    |   6 +-
>   fs/smb/client/cifs_spnego.h   |   2 -
>   fs/smb/client/cifs_unicode.h  |   3 -
>   fs/smb/client/cifsacl.c       |  10 +-
>   fs/smb/client/cifsencrypt.c   |  83 +--
>   fs/smb/client/cifsfs.c        |  36 +-
>   fs/smb/client/cifsglob.h      | 197 +++----
>   fs/smb/client/cifspdu.h       |   2 +-
>   fs/smb/client/cifsproto.h     | 200 ++++++--
>   fs/smb/client/cifssmb.c       | 931 +++++++++++++++++++---------------
>   fs/smb/client/cifstransport.c | 438 +++-------------
>   fs/smb/client/compress.c      |  23 +-
>   fs/smb/client/compress.h      |  19 +-
>   fs/smb/client/connect.c       | 199 ++++----
>   fs/smb/client/dir.c           |   8 +-
>   fs/smb/client/dns_resolve.h   |   4 -
>   fs/smb/client/file.c          |   6 +-
>   fs/smb/client/fs_context.c    |   2 +-
>   fs/smb/client/inode.c         |  14 +-
>   fs/smb/client/link.c          |  10 +-
>   fs/smb/client/misc.c          |  53 +-
>   fs/smb/client/netmisc.c       |  21 +-
>   fs/smb/client/readdir.c       |   2 +-
>   fs/smb/client/reparse.c       |  53 +-
>   fs/smb/client/sess.c          |  16 +-
>   fs/smb/client/smb1ops.c       | 114 +++--
>   fs/smb/client/smb2file.c      |   9 +-
>   fs/smb/client/smb2inode.c     |  13 +-
>   fs/smb/client/smb2maperror.c  |   6 +-
>   fs/smb/client/smb2misc.c      |  11 +-
>   fs/smb/client/smb2ops.c       | 178 +++----
>   fs/smb/client/smb2pdu.c       | 230 +++++----
>   fs/smb/client/smb2proto.h     |  18 +-
>   fs/smb/client/smb2transport.c | 113 ++---
>   fs/smb/client/trace.h         | 149 ++++++
>   fs/smb/client/transport.c     | 305 +++++------
>   fs/smb/client/xattr.c         |   2 +-
>   fs/smb/common/smb2pdu.h       |   3 -
>   fs/smb/common/smbglob.h       |   1 -
>   41 files changed, 1800 insertions(+), 1743 deletions(-)
> 
> 
> 


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ