[PATCH 09/10] smb: create common/common.h and common/common.c

chenxiaosong.chenxiaosong@linux.dev posted 10 patches 2 weeks, 1 day ago
There is a newer version of this series
[PATCH 09/10] smb: create common/common.h and common/common.c
Posted by chenxiaosong.chenxiaosong@linux.dev 2 weeks, 1 day ago
From: ChenXiaoSong <chenxiaosong@kylinos.cn>

Preparation for moving client/smb2maperror.c to common/.

We can put cifs_md4 and smb2maperror into a single smb_common.ko,
instead of creating two separate .ko (cifs_md4.ko and smb2maperror.ko).

  - rename md4.h -> common.h, and update include guard
  - create common.c, and move module info from cifs_md4.c into common.c

Signed-off-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
---
 fs/smb/client/smbencrypt.c        |  2 +-
 fs/smb/common/Makefile            |  3 ++-
 fs/smb/common/cifs_md4.c          |  5 +----
 fs/smb/common/common.c            | 28 ++++++++++++++++++++++++++++
 fs/smb/common/{md4.h => common.h} | 14 +++++++-------
 5 files changed, 39 insertions(+), 13 deletions(-)
 create mode 100644 fs/smb/common/common.c
 rename fs/smb/common/{md4.h => common.h} (86%)

diff --git a/fs/smb/client/smbencrypt.c b/fs/smb/client/smbencrypt.c
index 1d1ee9f18f37..abbedcdf7613 100644
--- a/fs/smb/client/smbencrypt.c
+++ b/fs/smb/client/smbencrypt.c
@@ -24,7 +24,7 @@
 #include "cifsglob.h"
 #include "cifs_debug.h"
 #include "cifsproto.h"
-#include "../common/md4.h"
+#include "../common/common.h"
 
 /* following came from the other byteorder.h to avoid include conflicts */
 #define CVAL(buf,pos) (((unsigned char *)(buf))[pos])
diff --git a/fs/smb/common/Makefile b/fs/smb/common/Makefile
index 9e0730a385fb..4f1dc5123e99 100644
--- a/fs/smb/common/Makefile
+++ b/fs/smb/common/Makefile
@@ -3,4 +3,5 @@
 # Makefile for Linux filesystem routines that are shared by client and server.
 #
 
-obj-$(CONFIG_SMBFS) += cifs_md4.o
+obj-$(CONFIG_SMBFS) += smb_common.o
+smb_common-objs := common.o cifs_md4.o
diff --git a/fs/smb/common/cifs_md4.c b/fs/smb/common/cifs_md4.c
index 7ee7f4dad90c..c619c0daf217 100644
--- a/fs/smb/common/cifs_md4.c
+++ b/fs/smb/common/cifs_md4.c
@@ -22,10 +22,7 @@
 #include <linux/string.h>
 #include <linux/types.h>
 #include <asm/byteorder.h>
-#include "md4.h"
-
-MODULE_DESCRIPTION("MD4 Message Digest Algorithm (RFC1320)");
-MODULE_LICENSE("GPL");
+#include "common.h"
 
 static inline u32 lshift(u32 x, unsigned int s)
 {
diff --git a/fs/smb/common/common.c b/fs/smb/common/common.c
new file mode 100644
index 000000000000..4142e05039c0
--- /dev/null
+++ b/fs/smb/common/common.c
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ *   Copyright (C) International Business Machines  Corp., 2009
+ *                 2018 Samsung Electronics Co., Ltd.
+ *   Author(s): Steve French <sfrench@us.ibm.com>
+ *              Namjae Jeon <linkinjeon@kernel.org>
+ */
+
+#include <linux/module.h>
+#include "common.h"
+
+static int __init smb_common_init(void)
+{
+	int rc = 0;
+
+	return rc;
+}
+
+static void __exit smb_common_exit(void)
+{
+}
+
+MODULE_AUTHOR("Steve French <stfrench@microsoft.com>");
+MODULE_AUTHOR("Namjae Jeon <linkinjeon@kernel.org>");
+MODULE_DESCRIPTION("Linux kernel SMB common");
+MODULE_LICENSE("GPL");
+module_init(smb_common_init)
+module_exit(smb_common_exit)
diff --git a/fs/smb/common/md4.h b/fs/smb/common/common.h
similarity index 86%
rename from fs/smb/common/md4.h
rename to fs/smb/common/common.h
index 5337becc699a..07ee24ecccb8 100644
--- a/fs/smb/common/md4.h
+++ b/fs/smb/common/common.h
@@ -1,13 +1,14 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
-/*
- * Common values for ARC4 Cipher Algorithm
- */
 
-#ifndef _CIFS_MD4_H
-#define _CIFS_MD4_H
+#ifndef __SMB_COMMON_H__
+#define __SMB_COMMON_H__
 
 #include <linux/types.h>
 
+/*
+ * Common values for ARC4 Cipher Algorithm
+ */
+
 #define MD4_DIGEST_SIZE		16
 #define MD4_HMAC_BLOCK_SIZE	64
 #define MD4_BLOCK_WORDS		16
@@ -19,9 +20,8 @@ struct md4_ctx {
 	u64 byte_count;
 };
 
-
 int cifs_md4_init(struct md4_ctx *mctx);
 int cifs_md4_update(struct md4_ctx *mctx, const u8 *data, unsigned int len);
 int cifs_md4_final(struct md4_ctx *mctx, u8 *out);
 
-#endif /* _CIFS_MD4_H */
+#endif /* __SMB_COMMON_H__ */
-- 
2.43.0
Re: [PATCH 09/10] smb: create common/common.h and common/common.c
Posted by Namjae Jeon 2 weeks ago
On Thu, Dec 4, 2025 at 2:00 PM <chenxiaosong.chenxiaosong@linux.dev> wrote:
>
> From: ChenXiaoSong <chenxiaosong@kylinos.cn>
>
> Preparation for moving client/smb2maperror.c to common/.
>
> We can put cifs_md4 and smb2maperror into a single smb_common.ko,
> instead of creating two separate .ko (cifs_md4.ko and smb2maperror.ko).
Sorry, I prefer not to create new *.ko for only smb2maperror.
>
>   - rename md4.h -> common.h, and update include guard
>   - create common.c, and move module info from cifs_md4.c into common.c
ksmbd does not use md4 in smb/common, I don't prefer this either.
I would appreciate it if you could send me the patch set again except these.
>
> Signed-off-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
Re: [PATCH 09/10] smb: create common/common.h and common/common.c
Posted by ChenXiaoSong 2 weeks ago
OK, I will create new smb2maperror.ko and will send v2 soon.

Thanks for your review and suggestions.

Thanks,
ChenXiaoSong.

On 12/5/25 08:35, Namjae Jeon wrote:
> On Thu, Dec 4, 2025 at 2:00 PM <chenxiaosong.chenxiaosong@linux.dev> wrote:
>>
>> From: ChenXiaoSong <chenxiaosong@kylinos.cn>
>>
>> Preparation for moving client/smb2maperror.c to common/.
>>
>> We can put cifs_md4 and smb2maperror into a single smb_common.ko,
>> instead of creating two separate .ko (cifs_md4.ko and smb2maperror.ko).
> Sorry, I prefer not to create new *.ko for only smb2maperror.
>>
>>    - rename md4.h -> common.h, and update include guard
>>    - create common.c, and move module info from cifs_md4.c into common.c
> ksmbd does not use md4 in smb/common, I don't prefer this either.
> I would appreciate it if you could send me the patch set again except these.
>>
>> Signed-off-by: ChenXiaoSong <chenxiaosong@kylinos.cn>

Re: [PATCH 09/10] smb: create common/common.h and common/common.c
Posted by Steve French 2 weeks ago
i lean against an 'smbcommon.ko'   - it can be helpful to move common
code (headers, #defines etc) into fs/smb/common but other than
smbdirect code (where smbdirect.ko makes sense for cifs.ko, ksmbd.ko,
Samba and user space AI apps e.g. to use), I lean against creating new
modules for the client and server.

ksmbd.ko for server code
cifs.ko (or maybe someday renamed to smb3.ko) for client code
smbdirect.ko for the RDMA/smbdirect code shared by ksmbd/cifs.ko/userspace tools

maybe (as they did for the md4 code creating an cifs_md4.ko so that
less secure code doesn't have to be linked in if unneeded) someday we
could split an "smb1.ko" out for the SMB1 related code (since we want
to discourage use of old insecure dialects, and could shrink cifs.ko,
and slightly simplify it)

Finding common code is good - but let's not complicate things by
creating lots of new modules - in the short term the focus is on
sanely splitting the common RDMA/smbdirect code out (because 1) it is
large enough 2) it will have use cases outside of cifs.ko and
ksmbd.ko).  But I lean against creating multiple new modules in the
short term.

On Thu, Dec 4, 2025 at 6:59 PM ChenXiaoSong
<chenxiaosong.chenxiaosong@linux.dev> wrote:
>
> OK, I will create new smb2maperror.ko and will send v2 soon.
>
> Thanks for your review and suggestions.
>
> Thanks,
> ChenXiaoSong.
>
> On 12/5/25 08:35, Namjae Jeon wrote:
> > On Thu, Dec 4, 2025 at 2:00 PM <chenxiaosong.chenxiaosong@linux.dev> wrote:
> >>
> >> From: ChenXiaoSong <chenxiaosong@kylinos.cn>
> >>
> >> Preparation for moving client/smb2maperror.c to common/.
> >>
> >> We can put cifs_md4 and smb2maperror into a single smb_common.ko,
> >> instead of creating two separate .ko (cifs_md4.ko and smb2maperror.ko).
> > Sorry, I prefer not to create new *.ko for only smb2maperror.
> >>
> >>    - rename md4.h -> common.h, and update include guard
> >>    - create common.c, and move module info from cifs_md4.c into common.c
> > ksmbd does not use md4 in smb/common, I don't prefer this either.
> > I would appreciate it if you could send me the patch set again except these.
> >>
> >> Signed-off-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
>


-- 
Thanks,

Steve
Re: [PATCH 09/10] smb: create common/common.h and common/common.c
Posted by ChenXiaoSong 2 weeks ago
Now, where should common/smb2maperror.c go? Should it be built into both 
cifs.ko and ksmbd.ko?

Thanks,
ChenXiaoSong.

On 12/5/25 09:36, Steve French wrote:
> i lean against an 'smbcommon.ko'   - it can be helpful to move common
> code (headers, #defines etc) into fs/smb/common but other than
> smbdirect code (where smbdirect.ko makes sense for cifs.ko, ksmbd.ko,
> Samba and user space AI apps e.g. to use), I lean against creating new
> modules for the client and server.
> 
> ksmbd.ko for server code
> cifs.ko (or maybe someday renamed to smb3.ko) for client code
> smbdirect.ko for the RDMA/smbdirect code shared by ksmbd/cifs.ko/userspace tools
> 
> maybe (as they did for the md4 code creating an cifs_md4.ko so that
> less secure code doesn't have to be linked in if unneeded) someday we
> could split an "smb1.ko" out for the SMB1 related code (since we want
> to discourage use of old insecure dialects, and could shrink cifs.ko,
> and slightly simplify it)
> 
> Finding common code is good - but let's not complicate things by
> creating lots of new modules - in the short term the focus is on
> sanely splitting the common RDMA/smbdirect code out (because 1) it is
> large enough 2) it will have use cases outside of cifs.ko and
> ksmbd.ko).  But I lean against creating multiple new modules in the
> short term.
> 
> On Thu, Dec 4, 2025 at 6:59 PM ChenXiaoSong
> <chenxiaosong.chenxiaosong@linux.dev> wrote:
>>
>> OK, I will create new smb2maperror.ko and will send v2 soon.
>>
>> Thanks for your review and suggestions.
>>
>> Thanks,
>> ChenXiaoSong.
>>
>> On 12/5/25 08:35, Namjae Jeon wrote:
>>> On Thu, Dec 4, 2025 at 2:00 PM <chenxiaosong.chenxiaosong@linux.dev> wrote:
>>>>
>>>> From: ChenXiaoSong <chenxiaosong@kylinos.cn>
>>>>
>>>> Preparation for moving client/smb2maperror.c to common/.
>>>>
>>>> We can put cifs_md4 and smb2maperror into a single smb_common.ko,
>>>> instead of creating two separate .ko (cifs_md4.ko and smb2maperror.ko).
>>> Sorry, I prefer not to create new *.ko for only smb2maperror.
>>>>
>>>>     - rename md4.h -> common.h, and update include guard
>>>>     - create common.c, and move module info from cifs_md4.c into common.c
>>> ksmbd does not use md4 in smb/common, I don't prefer this either.
>>> I would appreciate it if you could send me the patch set again except these.
>>>>
>>>> Signed-off-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
>>
> 
> 

Re: [PATCH 09/10] smb: create common/common.h and common/common.c
Posted by Steve French 2 weeks ago
On Thu, Dec 4, 2025 at 7:44 PM ChenXiaoSong
<chenxiaosong.chenxiaosong@linux.dev> wrote:
>
> Now, where should common/smb2maperror.c go? Should it be built into both
> cifs.ko and ksmbd.ko?
>
> Thanks,
> ChenXiaoSong.

I am open to other opinions - especially from Metze and Namjae who are
dealing with similar issues in splitting out the RDMA/smbdirect code,
but I lean toward (at least for now) just including it in both cifs.ko
or ksmbd.ko, or not moving the C code yet (just move to common headers
for #defines, inlined functions that are put in headers etc.).  I
consider moving the common C functions into a common C file used by
cifs.ko and ksmbd.ko is lower priority than other cleanup.

Do you have a list of all of the (general types of) functions that
smb3common.ko could contain?  IIRC you mentioned for mapping errors
but what other routines could easily make it into this proposed common
module with low risk?

>
> On 12/5/25 09:36, Steve French wrote:
> > i lean against an 'smbcommon.ko'   - it can be helpful to move common
> > code (headers, #defines etc) into fs/smb/common but other than
> > smbdirect code (where smbdirect.ko makes sense for cifs.ko, ksmbd.ko,
> > Samba and user space AI apps e.g. to use), I lean against creating new
> > modules for the client and server.
> >
> > ksmbd.ko for server code
> > cifs.ko (or maybe someday renamed to smb3.ko) for client code
> > smbdirect.ko for the RDMA/smbdirect code shared by ksmbd/cifs.ko/userspace tools
> >
> > maybe (as they did for the md4 code creating an cifs_md4.ko so that
> > less secure code doesn't have to be linked in if unneeded) someday we
> > could split an "smb1.ko" out for the SMB1 related code (since we want
> > to discourage use of old insecure dialects, and could shrink cifs.ko,
> > and slightly simplify it)
> >
> > Finding common code is good - but let's not complicate things by
> > creating lots of new modules - in the short term the focus is on
> > sanely splitting the common RDMA/smbdirect code out (because 1) it is
> > large enough 2) it will have use cases outside of cifs.ko and
> > ksmbd.ko).  But I lean against creating multiple new modules in the
> > short term.
> >
> > On Thu, Dec 4, 2025 at 6:59 PM ChenXiaoSong
> > <chenxiaosong.chenxiaosong@linux.dev> wrote:
> >>
> >> OK, I will create new smb2maperror.ko and will send v2 soon.
> >>
> >> Thanks for your review and suggestions.
> >>
> >> Thanks,
> >> ChenXiaoSong.
> >>
> >> On 12/5/25 08:35, Namjae Jeon wrote:
> >>> On Thu, Dec 4, 2025 at 2:00 PM <chenxiaosong.chenxiaosong@linux.dev> wrote:
> >>>>
> >>>> From: ChenXiaoSong <chenxiaosong@kylinos.cn>
> >>>>
> >>>> Preparation for moving client/smb2maperror.c to common/.
> >>>>
> >>>> We can put cifs_md4 and smb2maperror into a single smb_common.ko,
> >>>> instead of creating two separate .ko (cifs_md4.ko and smb2maperror.ko).
> >>> Sorry, I prefer not to create new *.ko for only smb2maperror.
> >>>>
> >>>>     - rename md4.h -> common.h, and update include guard
> >>>>     - create common.c, and move module info from cifs_md4.c into common.c
> >>> ksmbd does not use md4 in smb/common, I don't prefer this either.
> >>> I would appreciate it if you could send me the patch set again except these.
> >>>>
> >>>> Signed-off-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
> >>
> >
> >
>


-- 
Thanks,

Steve
Re: [PATCH 09/10] smb: create common/common.h and common/common.c
Posted by ChenXiaoSong 2 weeks ago
Alternatively, we could consider placing MD4 into an smb1_common.ko, and 
creating an smb2_common.ko for the SMB2/3 common code. What do you think?

Thanks,
ChenXiaoSong.

On 12/5/25 09:50, Steve French wrote:
> On Thu, Dec 4, 2025 at 7:44 PM ChenXiaoSong
> <chenxiaosong.chenxiaosong@linux.dev> wrote:
>>
>> Now, where should common/smb2maperror.c go? Should it be built into both
>> cifs.ko and ksmbd.ko?
>>
>> Thanks,
>> ChenXiaoSong.
> 
> I am open to other opinions - especially from Metze and Namjae who are
> dealing with similar issues in splitting out the RDMA/smbdirect code,
> but I lean toward (at least for now) just including it in both cifs.ko
> or ksmbd.ko, or not moving the C code yet (just move to common headers
> for #defines, inlined functions that are put in headers etc.).  I
> consider moving the common C functions into a common C file used by
> cifs.ko and ksmbd.ko is lower priority than other cleanup.
> 
> Do you have a list of all of the (general types of) functions that
> smb3common.ko could contain?  IIRC you mentioned for mapping errors
> but what other routines could easily make it into this proposed common
> module with low risk?
> 
>>
>> On 12/5/25 09:36, Steve French wrote:
>>> i lean against an 'smbcommon.ko'   - it can be helpful to move common
>>> code (headers, #defines etc) into fs/smb/common but other than
>>> smbdirect code (where smbdirect.ko makes sense for cifs.ko, ksmbd.ko,
>>> Samba and user space AI apps e.g. to use), I lean against creating new
>>> modules for the client and server.
>>>
>>> ksmbd.ko for server code
>>> cifs.ko (or maybe someday renamed to smb3.ko) for client code
>>> smbdirect.ko for the RDMA/smbdirect code shared by ksmbd/cifs.ko/userspace tools
>>>
>>> maybe (as they did for the md4 code creating an cifs_md4.ko so that
>>> less secure code doesn't have to be linked in if unneeded) someday we
>>> could split an "smb1.ko" out for the SMB1 related code (since we want
>>> to discourage use of old insecure dialects, and could shrink cifs.ko,
>>> and slightly simplify it)
>>>
>>> Finding common code is good - but let's not complicate things by
>>> creating lots of new modules - in the short term the focus is on
>>> sanely splitting the common RDMA/smbdirect code out (because 1) it is
>>> large enough 2) it will have use cases outside of cifs.ko and
>>> ksmbd.ko).  But I lean against creating multiple new modules in the
>>> short term.
>>>
>>> On Thu, Dec 4, 2025 at 6:59 PM ChenXiaoSong
>>> <chenxiaosong.chenxiaosong@linux.dev> wrote:
>>>>
>>>> OK, I will create new smb2maperror.ko and will send v2 soon.
>>>>
>>>> Thanks for your review and suggestions.
>>>>
>>>> Thanks,
>>>> ChenXiaoSong.
>>>>
>>>> On 12/5/25 08:35, Namjae Jeon wrote:
>>>>> On Thu, Dec 4, 2025 at 2:00 PM <chenxiaosong.chenxiaosong@linux.dev> wrote:
>>>>>>
>>>>>> From: ChenXiaoSong <chenxiaosong@kylinos.cn>
>>>>>>
>>>>>> Preparation for moving client/smb2maperror.c to common/.
>>>>>>
>>>>>> We can put cifs_md4 and smb2maperror into a single smb_common.ko,
>>>>>> instead of creating two separate .ko (cifs_md4.ko and smb2maperror.ko).
>>>>> Sorry, I prefer not to create new *.ko for only smb2maperror.
>>>>>>
>>>>>>      - rename md4.h -> common.h, and update include guard
>>>>>>      - create common.c, and move module info from cifs_md4.c into common.c
>>>>> ksmbd does not use md4 in smb/common, I don't prefer this either.
>>>>> I would appreciate it if you could send me the patch set again except these.
>>>>>>
>>>>>> Signed-off-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
>>>>
>>>
>>>
>>
> 
> 

Re: [PATCH 09/10] smb: create common/common.h and common/common.c
Posted by ChenXiaoSong 2 weeks ago
MD4 is also used in SMB2_sess_auth_rawntlmssp_authenticate(), so for now 
we won't move smb2maperror to common/. We can reconsider this in the 
future when ksmbd actually needs to use smb2maperror.

Thanks,
ChenXiaoSong.

On 12/5/25 10:14, ChenXiaoSong wrote:
> Alternatively, we could consider placing MD4 into an smb1_common.ko, and 
> creating an smb2_common.ko for the SMB2/3 common code. What do you think?
> 
> Thanks,
> ChenXiaoSong.
> 
> On 12/5/25 09:50, Steve French wrote:
>> On Thu, Dec 4, 2025 at 7:44 PM ChenXiaoSong
>> <chenxiaosong.chenxiaosong@linux.dev> wrote:
>>>
>>> Now, where should common/smb2maperror.c go? Should it be built into both
>>> cifs.ko and ksmbd.ko?
>>>
>>> Thanks,
>>> ChenXiaoSong.
>>
>> I am open to other opinions - especially from Metze and Namjae who are
>> dealing with similar issues in splitting out the RDMA/smbdirect code,
>> but I lean toward (at least for now) just including it in both cifs.ko
>> or ksmbd.ko, or not moving the C code yet (just move to common headers
>> for #defines, inlined functions that are put in headers etc.).  I
>> consider moving the common C functions into a common C file used by
>> cifs.ko and ksmbd.ko is lower priority than other cleanup.
>>
>> Do you have a list of all of the (general types of) functions that
>> smb3common.ko could contain?  IIRC you mentioned for mapping errors
>> but what other routines could easily make it into this proposed common
>> module with low risk?
>>
>>>
>>> On 12/5/25 09:36, Steve French wrote:
>>>> i lean against an 'smbcommon.ko'   - it can be helpful to move common
>>>> code (headers, #defines etc) into fs/smb/common but other than
>>>> smbdirect code (where smbdirect.ko makes sense for cifs.ko, ksmbd.ko,
>>>> Samba and user space AI apps e.g. to use), I lean against creating new
>>>> modules for the client and server.
>>>>
>>>> ksmbd.ko for server code
>>>> cifs.ko (or maybe someday renamed to smb3.ko) for client code
>>>> smbdirect.ko for the RDMA/smbdirect code shared by ksmbd/cifs.ko/ 
>>>> userspace tools
>>>>
>>>> maybe (as they did for the md4 code creating an cifs_md4.ko so that
>>>> less secure code doesn't have to be linked in if unneeded) someday we
>>>> could split an "smb1.ko" out for the SMB1 related code (since we want
>>>> to discourage use of old insecure dialects, and could shrink cifs.ko,
>>>> and slightly simplify it)
>>>>
>>>> Finding common code is good - but let's not complicate things by
>>>> creating lots of new modules - in the short term the focus is on
>>>> sanely splitting the common RDMA/smbdirect code out (because 1) it is
>>>> large enough 2) it will have use cases outside of cifs.ko and
>>>> ksmbd.ko).  But I lean against creating multiple new modules in the
>>>> short term.
>>>>
>>>> On Thu, Dec 4, 2025 at 6:59 PM ChenXiaoSong
>>>> <chenxiaosong.chenxiaosong@linux.dev> wrote:
>>>>>
>>>>> OK, I will create new smb2maperror.ko and will send v2 soon.
>>>>>
>>>>> Thanks for your review and suggestions.
>>>>>
>>>>> Thanks,
>>>>> ChenXiaoSong.
>>>>>
>>>>> On 12/5/25 08:35, Namjae Jeon wrote:
>>>>>> On Thu, Dec 4, 2025 at 2:00 PM 
>>>>>> <chenxiaosong.chenxiaosong@linux.dev> wrote:
>>>>>>>
>>>>>>> From: ChenXiaoSong <chenxiaosong@kylinos.cn>
>>>>>>>
>>>>>>> Preparation for moving client/smb2maperror.c to common/.
>>>>>>>
>>>>>>> We can put cifs_md4 and smb2maperror into a single smb_common.ko,
>>>>>>> instead of creating two separate .ko (cifs_md4.ko and 
>>>>>>> smb2maperror.ko).
>>>>>> Sorry, I prefer not to create new *.ko for only smb2maperror.
>>>>>>>
>>>>>>>      - rename md4.h -> common.h, and update include guard
>>>>>>>      - create common.c, and move module info from cifs_md4.c into 
>>>>>>> common.c
>>>>>> ksmbd does not use md4 in smb/common, I don't prefer this either.
>>>>>> I would appreciate it if you could send me the patch set again 
>>>>>> except these.
>>>>>>>
>>>>>>> Signed-off-by: ChenXiaoSong <chenxiaosong@kylinos.cn>
>>>>>
>>>>
>>>>
>>>
>>
>>
>