public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] cifs: Remove pre-historic unused CIFSSMBCopy
@ 2024-10-07 21:02 linux
  2024-11-07 21:04 ` Dr. David Alan Gilbert
  2024-11-13 17:09 ` Steve French
  0 siblings, 2 replies; 12+ messages in thread
From: linux @ 2024-10-07 21:02 UTC (permalink / raw)
  To: sfrench, pc, ronniesahlberg, sprasad, tom, bharathsm
  Cc: linux-cifs, linux-kernel, Dr. David Alan Gilbert

From: "Dr. David Alan Gilbert" <linux@treblig.org>

CIFSSMBCopy() is unused, remove it.

It seems to have been that way pre-git; looking in a historic
archive, I think it landed around May 2004 in Linus'
BKrev: 40ab7591J_OgkpHW-qhzZukvAUAw9g
and was unused back then.

Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
---
 fs/smb/client/cifsproto.h |  7 -----
 fs/smb/client/cifssmb.c   | 63 ---------------------------------------
 2 files changed, 70 deletions(-)

diff --git a/fs/smb/client/cifsproto.h b/fs/smb/client/cifsproto.h
index 1d3470bca45e..8235b5a0aa2b 100644
--- a/fs/smb/client/cifsproto.h
+++ b/fs/smb/client/cifsproto.h
@@ -549,13 +549,6 @@ extern int generate_smb311signingkey(struct cifs_ses *ses,
 				     struct TCP_Server_Info *server);
 
 #ifdef CONFIG_CIFS_ALLOW_INSECURE_LEGACY
-extern int CIFSSMBCopy(unsigned int xid,
-			struct cifs_tcon *source_tcon,
-			const char *fromName,
-			const __u16 target_tid,
-			const char *toName, const int flags,
-			const struct nls_table *nls_codepage,
-			int remap_special_chars);
 extern ssize_t CIFSSMBQAllEAs(const unsigned int xid, struct cifs_tcon *tcon,
 			const unsigned char *searchName,
 			const unsigned char *ea_name, char *EAData,
diff --git a/fs/smb/client/cifssmb.c b/fs/smb/client/cifssmb.c
index c6f15dbe860a..ca50ac652e02 100644
--- a/fs/smb/client/cifssmb.c
+++ b/fs/smb/client/cifssmb.c
@@ -2339,69 +2339,6 @@ int CIFSSMBRenameOpenFile(const unsigned int xid, struct cifs_tcon *pTcon,
 	return rc;
 }
 
-int
-CIFSSMBCopy(const unsigned int xid, struct cifs_tcon *tcon,
-	    const char *fromName, const __u16 target_tid, const char *toName,
-	    const int flags, const struct nls_table *nls_codepage, int remap)
-{
-	int rc = 0;
-	COPY_REQ *pSMB = NULL;
-	COPY_RSP *pSMBr = NULL;
-	int bytes_returned;
-	int name_len, name_len2;
-	__u16 count;
-
-	cifs_dbg(FYI, "In CIFSSMBCopy\n");
-copyRetry:
-	rc = smb_init(SMB_COM_COPY, 1, tcon, (void **) &pSMB,
-			(void **) &pSMBr);
-	if (rc)
-		return rc;
-
-	pSMB->BufferFormat = 0x04;
-	pSMB->Tid2 = target_tid;
-
-	pSMB->Flags = cpu_to_le16(flags & COPY_TREE);
-
-	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
-		name_len = cifsConvertToUTF16((__le16 *) pSMB->OldFileName,
-					      fromName, PATH_MAX, nls_codepage,
-					      remap);
-		name_len++;     /* trailing null */
-		name_len *= 2;
-		pSMB->OldFileName[name_len] = 0x04;     /* pad */
-		/* protocol requires ASCII signature byte on Unicode string */
-		pSMB->OldFileName[name_len + 1] = 0x00;
-		name_len2 =
-		    cifsConvertToUTF16((__le16 *)&pSMB->OldFileName[name_len+2],
-				       toName, PATH_MAX, nls_codepage, remap);
-		name_len2 += 1 /* trailing null */  + 1 /* Signature word */ ;
-		name_len2 *= 2; /* convert to bytes */
-	} else {
-		name_len = copy_path_name(pSMB->OldFileName, fromName);
-		pSMB->OldFileName[name_len] = 0x04;  /* 2nd buffer format */
-		name_len2 = copy_path_name(pSMB->OldFileName+name_len+1, toName);
-		name_len2++;    /* signature byte */
-	}
-
-	count = 1 /* 1st signature byte */  + name_len + name_len2;
-	inc_rfc1001_len(pSMB, count);
-	pSMB->ByteCount = cpu_to_le16(count);
-
-	rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB,
-		(struct smb_hdr *) pSMBr, &bytes_returned, 0);
-	if (rc) {
-		cifs_dbg(FYI, "Send error in copy = %d with %d files copied\n",
-			 rc, le16_to_cpu(pSMBr->CopyCount));
-	}
-	cifs_buf_release(pSMB);
-
-	if (rc == -EAGAIN)
-		goto copyRetry;
-
-	return rc;
-}
-
 int
 CIFSUnixCreateSymLink(const unsigned int xid, struct cifs_tcon *tcon,
 		      const char *fromName, const char *toName,
-- 
2.46.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH] cifs: Remove pre-historic unused CIFSSMBCopy
  2024-10-07 21:02 [PATCH] cifs: Remove pre-historic unused CIFSSMBCopy linux
@ 2024-11-07 21:04 ` Dr. David Alan Gilbert
       [not found]   ` <CAH2r5mvL+xXH_nnoKKKnVPFo_xtOb=8mPSqrG28Dgngx6Aab7Q@mail.gmail.com>
  2024-11-13 17:09 ` Steve French
  1 sibling, 1 reply; 12+ messages in thread
From: Dr. David Alan Gilbert @ 2024-11-07 21:04 UTC (permalink / raw)
  To: sfrench, pc, ronniesahlberg, sprasad, tom, bharathsm
  Cc: linux-cifs, linux-kernel

* linux@treblig.org (linux@treblig.org) wrote:
> From: "Dr. David Alan Gilbert" <linux@treblig.org>
> 
> CIFSSMBCopy() is unused, remove it.
> 
> It seems to have been that way pre-git; looking in a historic
> archive, I think it landed around May 2004 in Linus'
> BKrev: 40ab7591J_OgkpHW-qhzZukvAUAw9g
> and was unused back then.
> 
> Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>

Ping?

Dave

> ---
>  fs/smb/client/cifsproto.h |  7 -----
>  fs/smb/client/cifssmb.c   | 63 ---------------------------------------
>  2 files changed, 70 deletions(-)
> 
> diff --git a/fs/smb/client/cifsproto.h b/fs/smb/client/cifsproto.h
> index 1d3470bca45e..8235b5a0aa2b 100644
> --- a/fs/smb/client/cifsproto.h
> +++ b/fs/smb/client/cifsproto.h
> @@ -549,13 +549,6 @@ extern int generate_smb311signingkey(struct cifs_ses *ses,
>  				     struct TCP_Server_Info *server);
>  
>  #ifdef CONFIG_CIFS_ALLOW_INSECURE_LEGACY
> -extern int CIFSSMBCopy(unsigned int xid,
> -			struct cifs_tcon *source_tcon,
> -			const char *fromName,
> -			const __u16 target_tid,
> -			const char *toName, const int flags,
> -			const struct nls_table *nls_codepage,
> -			int remap_special_chars);
>  extern ssize_t CIFSSMBQAllEAs(const unsigned int xid, struct cifs_tcon *tcon,
>  			const unsigned char *searchName,
>  			const unsigned char *ea_name, char *EAData,
> diff --git a/fs/smb/client/cifssmb.c b/fs/smb/client/cifssmb.c
> index c6f15dbe860a..ca50ac652e02 100644
> --- a/fs/smb/client/cifssmb.c
> +++ b/fs/smb/client/cifssmb.c
> @@ -2339,69 +2339,6 @@ int CIFSSMBRenameOpenFile(const unsigned int xid, struct cifs_tcon *pTcon,
>  	return rc;
>  }
>  
> -int
> -CIFSSMBCopy(const unsigned int xid, struct cifs_tcon *tcon,
> -	    const char *fromName, const __u16 target_tid, const char *toName,
> -	    const int flags, const struct nls_table *nls_codepage, int remap)
> -{
> -	int rc = 0;
> -	COPY_REQ *pSMB = NULL;
> -	COPY_RSP *pSMBr = NULL;
> -	int bytes_returned;
> -	int name_len, name_len2;
> -	__u16 count;
> -
> -	cifs_dbg(FYI, "In CIFSSMBCopy\n");
> -copyRetry:
> -	rc = smb_init(SMB_COM_COPY, 1, tcon, (void **) &pSMB,
> -			(void **) &pSMBr);
> -	if (rc)
> -		return rc;
> -
> -	pSMB->BufferFormat = 0x04;
> -	pSMB->Tid2 = target_tid;
> -
> -	pSMB->Flags = cpu_to_le16(flags & COPY_TREE);
> -
> -	if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
> -		name_len = cifsConvertToUTF16((__le16 *) pSMB->OldFileName,
> -					      fromName, PATH_MAX, nls_codepage,
> -					      remap);
> -		name_len++;     /* trailing null */
> -		name_len *= 2;
> -		pSMB->OldFileName[name_len] = 0x04;     /* pad */
> -		/* protocol requires ASCII signature byte on Unicode string */
> -		pSMB->OldFileName[name_len + 1] = 0x00;
> -		name_len2 =
> -		    cifsConvertToUTF16((__le16 *)&pSMB->OldFileName[name_len+2],
> -				       toName, PATH_MAX, nls_codepage, remap);
> -		name_len2 += 1 /* trailing null */  + 1 /* Signature word */ ;
> -		name_len2 *= 2; /* convert to bytes */
> -	} else {
> -		name_len = copy_path_name(pSMB->OldFileName, fromName);
> -		pSMB->OldFileName[name_len] = 0x04;  /* 2nd buffer format */
> -		name_len2 = copy_path_name(pSMB->OldFileName+name_len+1, toName);
> -		name_len2++;    /* signature byte */
> -	}
> -
> -	count = 1 /* 1st signature byte */  + name_len + name_len2;
> -	inc_rfc1001_len(pSMB, count);
> -	pSMB->ByteCount = cpu_to_le16(count);
> -
> -	rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB,
> -		(struct smb_hdr *) pSMBr, &bytes_returned, 0);
> -	if (rc) {
> -		cifs_dbg(FYI, "Send error in copy = %d with %d files copied\n",
> -			 rc, le16_to_cpu(pSMBr->CopyCount));
> -	}
> -	cifs_buf_release(pSMB);
> -
> -	if (rc == -EAGAIN)
> -		goto copyRetry;
> -
> -	return rc;
> -}
> -
>  int
>  CIFSUnixCreateSymLink(const unsigned int xid, struct cifs_tcon *tcon,
>  		      const char *fromName, const char *toName,
> -- 
> 2.46.2
> 
-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] cifs: Remove pre-historic unused CIFSSMBCopy
       [not found]   ` <CAH2r5mvL+xXH_nnoKKKnVPFo_xtOb=8mPSqrG28Dgngx6Aab7Q@mail.gmail.com>
@ 2024-11-09  4:09     ` Steve French
  2024-11-10  0:47       ` Tom Talpey
  2024-11-10 19:51       ` Jeremy Allison
  0 siblings, 2 replies; 12+ messages in thread
From: Steve French @ 2024-11-09  4:09 UTC (permalink / raw)
  To: Dr. David Alan Gilbert
  Cc: Steve French, Paulo Alcantara, ronnie sahlberg, Shyam Prasad N,
	Tom Talpey, Bharath S M, CIFS, LKML

As an alternative, might be useful to see if this command still works
to Samba and/or older Windows (and e.g. enable an ioctl for it - might
have been useful in the past to old servers)

On Fri, Nov 8, 2024 at 10:06 PM Steve French <smfrench@gmail.com> wrote:
>
> No objections to this from me. Will add it to for next next in the next few days so can queue it for 6.13-rc
>
> On Thu, Nov 7, 2024, 3:11 PM Dr. David Alan Gilbert <linux@treblig.org> wrote:
>>
>> * linux@treblig.org (linux@treblig.org) wrote:
>> > From: "Dr. David Alan Gilbert" <linux@treblig.org>
>> >
>> > CIFSSMBCopy() is unused, remove it.
>> >
>> > It seems to have been that way pre-git; looking in a historic
>> > archive, I think it landed around May 2004 in Linus'
>> > BKrev: 40ab7591J_OgkpHW-qhzZukvAUAw9g
>> > and was unused back then.
>> >
>> > Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
>>
>> Ping?
>>
>> Dave
>>
>> > ---
>> >  fs/smb/client/cifsproto.h |  7 -----
>> >  fs/smb/client/cifssmb.c   | 63 ---------------------------------------
>> >  2 files changed, 70 deletions(-)
>> >
>> > diff --git a/fs/smb/client/cifsproto.h b/fs/smb/client/cifsproto.h
>> > index 1d3470bca45e..8235b5a0aa2b 100644
>> > --- a/fs/smb/client/cifsproto.h
>> > +++ b/fs/smb/client/cifsproto.h
>> > @@ -549,13 +549,6 @@ extern int generate_smb311signingkey(struct cifs_ses *ses,
>> >                                    struct TCP_Server_Info *server);
>> >
>> >  #ifdef CONFIG_CIFS_ALLOW_INSECURE_LEGACY
>> > -extern int CIFSSMBCopy(unsigned int xid,
>> > -                     struct cifs_tcon *source_tcon,
>> > -                     const char *fromName,
>> > -                     const __u16 target_tid,
>> > -                     const char *toName, const int flags,
>> > -                     const struct nls_table *nls_codepage,
>> > -                     int remap_special_chars);
>> >  extern ssize_t CIFSSMBQAllEAs(const unsigned int xid, struct cifs_tcon *tcon,
>> >                       const unsigned char *searchName,
>> >                       const unsigned char *ea_name, char *EAData,
>> > diff --git a/fs/smb/client/cifssmb.c b/fs/smb/client/cifssmb.c
>> > index c6f15dbe860a..ca50ac652e02 100644
>> > --- a/fs/smb/client/cifssmb.c
>> > +++ b/fs/smb/client/cifssmb.c
>> > @@ -2339,69 +2339,6 @@ int CIFSSMBRenameOpenFile(const unsigned int xid, struct cifs_tcon *pTcon,
>> >       return rc;
>> >  }
>> >
>> > -int
>> > -CIFSSMBCopy(const unsigned int xid, struct cifs_tcon *tcon,
>> > -         const char *fromName, const __u16 target_tid, const char *toName,
>> > -         const int flags, const struct nls_table *nls_codepage, int remap)
>> > -{
>> > -     int rc = 0;
>> > -     COPY_REQ *pSMB = NULL;
>> > -     COPY_RSP *pSMBr = NULL;
>> > -     int bytes_returned;
>> > -     int name_len, name_len2;
>> > -     __u16 count;
>> > -
>> > -     cifs_dbg(FYI, "In CIFSSMBCopy\n");
>> > -copyRetry:
>> > -     rc = smb_init(SMB_COM_COPY, 1, tcon, (void **) &pSMB,
>> > -                     (void **) &pSMBr);
>> > -     if (rc)
>> > -             return rc;
>> > -
>> > -     pSMB->BufferFormat = 0x04;
>> > -     pSMB->Tid2 = target_tid;
>> > -
>> > -     pSMB->Flags = cpu_to_le16(flags & COPY_TREE);
>> > -
>> > -     if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>> > -             name_len = cifsConvertToUTF16((__le16 *) pSMB->OldFileName,
>> > -                                           fromName, PATH_MAX, nls_codepage,
>> > -                                           remap);
>> > -             name_len++;     /* trailing null */
>> > -             name_len *= 2;
>> > -             pSMB->OldFileName[name_len] = 0x04;     /* pad */
>> > -             /* protocol requires ASCII signature byte on Unicode string */
>> > -             pSMB->OldFileName[name_len + 1] = 0x00;
>> > -             name_len2 =
>> > -                 cifsConvertToUTF16((__le16 *)&pSMB->OldFileName[name_len+2],
>> > -                                    toName, PATH_MAX, nls_codepage, remap);
>> > -             name_len2 += 1 /* trailing null */  + 1 /* Signature word */ ;
>> > -             name_len2 *= 2; /* convert to bytes */
>> > -     } else {
>> > -             name_len = copy_path_name(pSMB->OldFileName, fromName);
>> > -             pSMB->OldFileName[name_len] = 0x04;  /* 2nd buffer format */
>> > -             name_len2 = copy_path_name(pSMB->OldFileName+name_len+1, toName);
>> > -             name_len2++;    /* signature byte */
>> > -     }
>> > -
>> > -     count = 1 /* 1st signature byte */  + name_len + name_len2;
>> > -     inc_rfc1001_len(pSMB, count);
>> > -     pSMB->ByteCount = cpu_to_le16(count);
>> > -
>> > -     rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB,
>> > -             (struct smb_hdr *) pSMBr, &bytes_returned, 0);
>> > -     if (rc) {
>> > -             cifs_dbg(FYI, "Send error in copy = %d with %d files copied\n",
>> > -                      rc, le16_to_cpu(pSMBr->CopyCount));
>> > -     }
>> > -     cifs_buf_release(pSMB);
>> > -
>> > -     if (rc == -EAGAIN)
>> > -             goto copyRetry;
>> > -
>> > -     return rc;
>> > -}
>> > -
>> >  int
>> >  CIFSUnixCreateSymLink(const unsigned int xid, struct cifs_tcon *tcon,
>> >                     const char *fromName, const char *toName,
>> > --
>> > 2.46.2
>> >
>> --
>>  -----Open up your eyes, open up your mind, open up your code -------
>> / Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \
>> \        dave @ treblig.org |                               | In Hex /
>>  \ _________________________|_____ http://www.treblig.org   |_______/
>>


-- 
Thanks,

Steve

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] cifs: Remove pre-historic unused CIFSSMBCopy
  2024-11-09  4:09     ` Steve French
@ 2024-11-10  0:47       ` Tom Talpey
  2024-11-10  1:09         ` Dr. David Alan Gilbert
  2024-11-10 19:51       ` Jeremy Allison
  1 sibling, 1 reply; 12+ messages in thread
From: Tom Talpey @ 2024-11-10  0:47 UTC (permalink / raw)
  To: Steve French, Dr. David Alan Gilbert
  Cc: Steve French, Paulo Alcantara, ronnie sahlberg, Shyam Prasad N,
	Bharath S M, CIFS, LKML

On 11/8/2024 11:09 PM, Steve French wrote:
> As an alternative, might be useful to see if this command still works
> to Samba and/or older Windows (and e.g. enable an ioctl for it - might
> have been useful in the past to old servers)

Please let's not do anything to enhance usage of the hopelessly
insecure SMB1 protocol. Especially not with something we just
found in the back of the closet.

The MS-CIFS document has this to say about SMB_COM_COPY:

2.2.4.37 SMB_COM_COPY (0x29)
This command was introduced in the LAN Manager 1.0 dialect (see
[SMB-LM1X] section 9.2.1 and [XOPEN-SMB] sections 14.1 and 15.2).
It was rendered obsolete in the NT LAN Manager dialect. This
command was used to perform server-side file copies, but is no
longer used. Clients SHOULD NOT send requests using this command
code. Servers receiving requests with this command code SHOULD
return STATUS_NOT_IMPLEMENTED (ERRDOS/ERRbadfunc). <51>

<51> Section 2.2.4.37: Windows NT servers attempt to process this
command, but the implementation is incomplete and the results are
not predictable.


Deletion-Enthusiastically-Acked-by: Tom Talpey <tom@talpey.com>

Tom.

> On Fri, Nov 8, 2024 at 10:06 PM Steve French <smfrench@gmail.com> wrote:
>>
>> No objections to this from me. Will add it to for next next in the next few days so can queue it for 6.13-rc
>>
>> On Thu, Nov 7, 2024, 3:11 PM Dr. David Alan Gilbert <linux@treblig.org> wrote:
>>>
>>> * linux@treblig.org (linux@treblig.org) wrote:
>>>> From: "Dr. David Alan Gilbert" <linux@treblig.org>
>>>>
>>>> CIFSSMBCopy() is unused, remove it.
>>>>
>>>> It seems to have been that way pre-git; looking in a historic
>>>> archive, I think it landed around May 2004 in Linus'
>>>> BKrev: 40ab7591J_OgkpHW-qhzZukvAUAw9g
>>>> and was unused back then.
>>>>
>>>> Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
>>>
>>> Ping?
>>>
>>> Dave
>>>
>>>> ---
>>>>   fs/smb/client/cifsproto.h |  7 -----
>>>>   fs/smb/client/cifssmb.c   | 63 ---------------------------------------
>>>>   2 files changed, 70 deletions(-)
>>>>
>>>> diff --git a/fs/smb/client/cifsproto.h b/fs/smb/client/cifsproto.h
>>>> index 1d3470bca45e..8235b5a0aa2b 100644
>>>> --- a/fs/smb/client/cifsproto.h
>>>> +++ b/fs/smb/client/cifsproto.h
>>>> @@ -549,13 +549,6 @@ extern int generate_smb311signingkey(struct cifs_ses *ses,
>>>>                                     struct TCP_Server_Info *server);
>>>>
>>>>   #ifdef CONFIG_CIFS_ALLOW_INSECURE_LEGACY
>>>> -extern int CIFSSMBCopy(unsigned int xid,
>>>> -                     struct cifs_tcon *source_tcon,
>>>> -                     const char *fromName,
>>>> -                     const __u16 target_tid,
>>>> -                     const char *toName, const int flags,
>>>> -                     const struct nls_table *nls_codepage,
>>>> -                     int remap_special_chars);
>>>>   extern ssize_t CIFSSMBQAllEAs(const unsigned int xid, struct cifs_tcon *tcon,
>>>>                        const unsigned char *searchName,
>>>>                        const unsigned char *ea_name, char *EAData,
>>>> diff --git a/fs/smb/client/cifssmb.c b/fs/smb/client/cifssmb.c
>>>> index c6f15dbe860a..ca50ac652e02 100644
>>>> --- a/fs/smb/client/cifssmb.c
>>>> +++ b/fs/smb/client/cifssmb.c
>>>> @@ -2339,69 +2339,6 @@ int CIFSSMBRenameOpenFile(const unsigned int xid, struct cifs_tcon *pTcon,
>>>>        return rc;
>>>>   }
>>>>
>>>> -int
>>>> -CIFSSMBCopy(const unsigned int xid, struct cifs_tcon *tcon,
>>>> -         const char *fromName, const __u16 target_tid, const char *toName,
>>>> -         const int flags, const struct nls_table *nls_codepage, int remap)
>>>> -{
>>>> -     int rc = 0;
>>>> -     COPY_REQ *pSMB = NULL;
>>>> -     COPY_RSP *pSMBr = NULL;
>>>> -     int bytes_returned;
>>>> -     int name_len, name_len2;
>>>> -     __u16 count;
>>>> -
>>>> -     cifs_dbg(FYI, "In CIFSSMBCopy\n");
>>>> -copyRetry:
>>>> -     rc = smb_init(SMB_COM_COPY, 1, tcon, (void **) &pSMB,
>>>> -                     (void **) &pSMBr);
>>>> -     if (rc)
>>>> -             return rc;
>>>> -
>>>> -     pSMB->BufferFormat = 0x04;
>>>> -     pSMB->Tid2 = target_tid;
>>>> -
>>>> -     pSMB->Flags = cpu_to_le16(flags & COPY_TREE);
>>>> -
>>>> -     if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
>>>> -             name_len = cifsConvertToUTF16((__le16 *) pSMB->OldFileName,
>>>> -                                           fromName, PATH_MAX, nls_codepage,
>>>> -                                           remap);
>>>> -             name_len++;     /* trailing null */
>>>> -             name_len *= 2;
>>>> -             pSMB->OldFileName[name_len] = 0x04;     /* pad */
>>>> -             /* protocol requires ASCII signature byte on Unicode string */
>>>> -             pSMB->OldFileName[name_len + 1] = 0x00;
>>>> -             name_len2 =
>>>> -                 cifsConvertToUTF16((__le16 *)&pSMB->OldFileName[name_len+2],
>>>> -                                    toName, PATH_MAX, nls_codepage, remap);
>>>> -             name_len2 += 1 /* trailing null */  + 1 /* Signature word */ ;
>>>> -             name_len2 *= 2; /* convert to bytes */
>>>> -     } else {
>>>> -             name_len = copy_path_name(pSMB->OldFileName, fromName);
>>>> -             pSMB->OldFileName[name_len] = 0x04;  /* 2nd buffer format */
>>>> -             name_len2 = copy_path_name(pSMB->OldFileName+name_len+1, toName);
>>>> -             name_len2++;    /* signature byte */
>>>> -     }
>>>> -
>>>> -     count = 1 /* 1st signature byte */  + name_len + name_len2;
>>>> -     inc_rfc1001_len(pSMB, count);
>>>> -     pSMB->ByteCount = cpu_to_le16(count);
>>>> -
>>>> -     rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB,
>>>> -             (struct smb_hdr *) pSMBr, &bytes_returned, 0);
>>>> -     if (rc) {
>>>> -             cifs_dbg(FYI, "Send error in copy = %d with %d files copied\n",
>>>> -                      rc, le16_to_cpu(pSMBr->CopyCount));
>>>> -     }
>>>> -     cifs_buf_release(pSMB);
>>>> -
>>>> -     if (rc == -EAGAIN)
>>>> -             goto copyRetry;
>>>> -
>>>> -     return rc;
>>>> -}
>>>> -
>>>>   int
>>>>   CIFSUnixCreateSymLink(const unsigned int xid, struct cifs_tcon *tcon,
>>>>                      const char *fromName, const char *toName,
>>>> --
>>>> 2.46.2
>>>>
>>> --
>>>   -----Open up your eyes, open up your mind, open up your code -------
>>> / Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \
>>> \        dave @ treblig.org |                               | In Hex /
>>>   \ _________________________|_____ http://www.treblig.org   |_______/
>>>
> 
> 


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] cifs: Remove pre-historic unused CIFSSMBCopy
  2024-11-10  0:47       ` Tom Talpey
@ 2024-11-10  1:09         ` Dr. David Alan Gilbert
  0 siblings, 0 replies; 12+ messages in thread
From: Dr. David Alan Gilbert @ 2024-11-10  1:09 UTC (permalink / raw)
  To: Tom Talpey
  Cc: Steve French, Steve French, Paulo Alcantara, ronnie sahlberg,
	Shyam Prasad N, Bharath S M, CIFS, LKML

* Tom Talpey (tom@talpey.com) wrote:
> On 11/8/2024 11:09 PM, Steve French wrote:
> > As an alternative, might be useful to see if this command still works
> > to Samba and/or older Windows (and e.g. enable an ioctl for it - might
> > have been useful in the past to old servers)
> 
> Please let's not do anything to enhance usage of the hopelessly
> insecure SMB1 protocol. Especially not with something we just
> found in the back of the closet.
> 
> The MS-CIFS document has this to say about SMB_COM_COPY:
> 
> 2.2.4.37 SMB_COM_COPY (0x29)
> This command was introduced in the LAN Manager 1.0 dialect (see
> [SMB-LM1X] section 9.2.1 and [XOPEN-SMB] sections 14.1 and 15.2).
> It was rendered obsolete in the NT LAN Manager dialect. This
> command was used to perform server-side file copies, but is no
> longer used. Clients SHOULD NOT send requests using this command
> code. Servers receiving requests with this command code SHOULD
> return STATUS_NOT_IMPLEMENTED (ERRDOS/ERRbadfunc). <51>
> 
> <51> Section 2.2.4.37: Windows NT servers attempt to process this
> command, but the implementation is incomplete and the results are
> not predictable.

Thanks for doing the archaeology!

> Deletion-Enthusiastically-Acked-by: Tom Talpey <tom@talpey.com>

Haha, thanks!

Dave

> Tom.
> 
> > On Fri, Nov 8, 2024 at 10:06 PM Steve French <smfrench@gmail.com> wrote:
> > > 
> > > No objections to this from me. Will add it to for next next in the next few days so can queue it for 6.13-rc
> > > 
> > > On Thu, Nov 7, 2024, 3:11 PM Dr. David Alan Gilbert <linux@treblig.org> wrote:
> > > > 
> > > > * linux@treblig.org (linux@treblig.org) wrote:
> > > > > From: "Dr. David Alan Gilbert" <linux@treblig.org>
> > > > > 
> > > > > CIFSSMBCopy() is unused, remove it.
> > > > > 
> > > > > It seems to have been that way pre-git; looking in a historic
> > > > > archive, I think it landed around May 2004 in Linus'
> > > > > BKrev: 40ab7591J_OgkpHW-qhzZukvAUAw9g
> > > > > and was unused back then.
> > > > > 
> > > > > Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
> > > > 
> > > > Ping?
> > > > 
> > > > Dave
> > > > 
> > > > > ---
> > > > >   fs/smb/client/cifsproto.h |  7 -----
> > > > >   fs/smb/client/cifssmb.c   | 63 ---------------------------------------
> > > > >   2 files changed, 70 deletions(-)
> > > > > 
> > > > > diff --git a/fs/smb/client/cifsproto.h b/fs/smb/client/cifsproto.h
> > > > > index 1d3470bca45e..8235b5a0aa2b 100644
> > > > > --- a/fs/smb/client/cifsproto.h
> > > > > +++ b/fs/smb/client/cifsproto.h
> > > > > @@ -549,13 +549,6 @@ extern int generate_smb311signingkey(struct cifs_ses *ses,
> > > > >                                     struct TCP_Server_Info *server);
> > > > > 
> > > > >   #ifdef CONFIG_CIFS_ALLOW_INSECURE_LEGACY
> > > > > -extern int CIFSSMBCopy(unsigned int xid,
> > > > > -                     struct cifs_tcon *source_tcon,
> > > > > -                     const char *fromName,
> > > > > -                     const __u16 target_tid,
> > > > > -                     const char *toName, const int flags,
> > > > > -                     const struct nls_table *nls_codepage,
> > > > > -                     int remap_special_chars);
> > > > >   extern ssize_t CIFSSMBQAllEAs(const unsigned int xid, struct cifs_tcon *tcon,
> > > > >                        const unsigned char *searchName,
> > > > >                        const unsigned char *ea_name, char *EAData,
> > > > > diff --git a/fs/smb/client/cifssmb.c b/fs/smb/client/cifssmb.c
> > > > > index c6f15dbe860a..ca50ac652e02 100644
> > > > > --- a/fs/smb/client/cifssmb.c
> > > > > +++ b/fs/smb/client/cifssmb.c
> > > > > @@ -2339,69 +2339,6 @@ int CIFSSMBRenameOpenFile(const unsigned int xid, struct cifs_tcon *pTcon,
> > > > >        return rc;
> > > > >   }
> > > > > 
> > > > > -int
> > > > > -CIFSSMBCopy(const unsigned int xid, struct cifs_tcon *tcon,
> > > > > -         const char *fromName, const __u16 target_tid, const char *toName,
> > > > > -         const int flags, const struct nls_table *nls_codepage, int remap)
> > > > > -{
> > > > > -     int rc = 0;
> > > > > -     COPY_REQ *pSMB = NULL;
> > > > > -     COPY_RSP *pSMBr = NULL;
> > > > > -     int bytes_returned;
> > > > > -     int name_len, name_len2;
> > > > > -     __u16 count;
> > > > > -
> > > > > -     cifs_dbg(FYI, "In CIFSSMBCopy\n");
> > > > > -copyRetry:
> > > > > -     rc = smb_init(SMB_COM_COPY, 1, tcon, (void **) &pSMB,
> > > > > -                     (void **) &pSMBr);
> > > > > -     if (rc)
> > > > > -             return rc;
> > > > > -
> > > > > -     pSMB->BufferFormat = 0x04;
> > > > > -     pSMB->Tid2 = target_tid;
> > > > > -
> > > > > -     pSMB->Flags = cpu_to_le16(flags & COPY_TREE);
> > > > > -
> > > > > -     if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
> > > > > -             name_len = cifsConvertToUTF16((__le16 *) pSMB->OldFileName,
> > > > > -                                           fromName, PATH_MAX, nls_codepage,
> > > > > -                                           remap);
> > > > > -             name_len++;     /* trailing null */
> > > > > -             name_len *= 2;
> > > > > -             pSMB->OldFileName[name_len] = 0x04;     /* pad */
> > > > > -             /* protocol requires ASCII signature byte on Unicode string */
> > > > > -             pSMB->OldFileName[name_len + 1] = 0x00;
> > > > > -             name_len2 =
> > > > > -                 cifsConvertToUTF16((__le16 *)&pSMB->OldFileName[name_len+2],
> > > > > -                                    toName, PATH_MAX, nls_codepage, remap);
> > > > > -             name_len2 += 1 /* trailing null */  + 1 /* Signature word */ ;
> > > > > -             name_len2 *= 2; /* convert to bytes */
> > > > > -     } else {
> > > > > -             name_len = copy_path_name(pSMB->OldFileName, fromName);
> > > > > -             pSMB->OldFileName[name_len] = 0x04;  /* 2nd buffer format */
> > > > > -             name_len2 = copy_path_name(pSMB->OldFileName+name_len+1, toName);
> > > > > -             name_len2++;    /* signature byte */
> > > > > -     }
> > > > > -
> > > > > -     count = 1 /* 1st signature byte */  + name_len + name_len2;
> > > > > -     inc_rfc1001_len(pSMB, count);
> > > > > -     pSMB->ByteCount = cpu_to_le16(count);
> > > > > -
> > > > > -     rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB,
> > > > > -             (struct smb_hdr *) pSMBr, &bytes_returned, 0);
> > > > > -     if (rc) {
> > > > > -             cifs_dbg(FYI, "Send error in copy = %d with %d files copied\n",
> > > > > -                      rc, le16_to_cpu(pSMBr->CopyCount));
> > > > > -     }
> > > > > -     cifs_buf_release(pSMB);
> > > > > -
> > > > > -     if (rc == -EAGAIN)
> > > > > -             goto copyRetry;
> > > > > -
> > > > > -     return rc;
> > > > > -}
> > > > > -
> > > > >   int
> > > > >   CIFSUnixCreateSymLink(const unsigned int xid, struct cifs_tcon *tcon,
> > > > >                      const char *fromName, const char *toName,
> > > > > --
> > > > > 2.46.2
> > > > > 
> > > > --
> > > >   -----Open up your eyes, open up your mind, open up your code -------
> > > > / Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \
> > > > \        dave @ treblig.org |                               | In Hex /
> > > >   \ _________________________|_____ http://www.treblig.org   |_______/
> > > > 
> > 
> > 
> 
> 
-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] cifs: Remove pre-historic unused CIFSSMBCopy
  2024-11-09  4:09     ` Steve French
  2024-11-10  0:47       ` Tom Talpey
@ 2024-11-10 19:51       ` Jeremy Allison
  2024-11-10 23:02         ` ronnie sahlberg
  1 sibling, 1 reply; 12+ messages in thread
From: Jeremy Allison @ 2024-11-10 19:51 UTC (permalink / raw)
  To: Steve French
  Cc: Dr. David Alan Gilbert, Steve French, Paulo Alcantara,
	ronnie sahlberg, Shyam Prasad N, Tom Talpey, Bharath S M, CIFS,
	LKML

On Fri, Nov 08, 2024 at 10:09:58PM -0600, Steve French wrote:
>As an alternative, might be useful to see if this command still works
>to Samba and/or older Windows (and e.g. enable an ioctl for it - might
>have been useful in the past to old servers)

No, this command has *never* been useful. Please don't enable
it, just remove support.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] cifs: Remove pre-historic unused CIFSSMBCopy
  2024-11-10 19:51       ` Jeremy Allison
@ 2024-11-10 23:02         ` ronnie sahlberg
  2024-11-11  1:13           ` Jeremy Allison
  0 siblings, 1 reply; 12+ messages in thread
From: ronnie sahlberg @ 2024-11-10 23:02 UTC (permalink / raw)
  To: Jeremy Allison
  Cc: Steve French, Dr. David Alan Gilbert, Steve French,
	Paulo Alcantara, Shyam Prasad N, Tom Talpey, Bharath S M, CIFS,
	LKML

All of SMB1 should be removed.  Not just disabled but deleted.

What are the plans in samba? Any timeline to literally delete the smb1 code?

On Mon, 11 Nov 2024 at 05:51, Jeremy Allison <jra@samba.org> wrote:
>
> On Fri, Nov 08, 2024 at 10:09:58PM -0600, Steve French wrote:
> >As an alternative, might be useful to see if this command still works
> >to Samba and/or older Windows (and e.g. enable an ioctl for it - might
> >have been useful in the past to old servers)
>
> No, this command has *never* been useful. Please don't enable
> it, just remove support.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] cifs: Remove pre-historic unused CIFSSMBCopy
  2024-11-10 23:02         ` ronnie sahlberg
@ 2024-11-11  1:13           ` Jeremy Allison
  2024-11-11  1:25             ` Steve French
  2024-11-11  6:31             ` ronnie sahlberg
  0 siblings, 2 replies; 12+ messages in thread
From: Jeremy Allison @ 2024-11-11  1:13 UTC (permalink / raw)
  To: ronnie sahlberg
  Cc: Steve French, Dr. David Alan Gilbert, Steve French,
	Paulo Alcantara, Shyam Prasad N, Tom Talpey, Bharath S M, CIFS,
	LKML

On Mon, Nov 11, 2024 at 09:02:03AM +1000, ronnie sahlberg wrote:
>All of SMB1 should be removed.  Not just disabled but deleted.
>
>What are the plans in samba? Any timeline to literally delete the smb1 code?

It can already be compiled out of any build,
so it's an option for any distro or user of
Samba.

I'm not sure deleting the code is needed at
this point, as it still has legacy uses
(there are still commercial uses of OS/2
out there for example).

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] cifs: Remove pre-historic unused CIFSSMBCopy
  2024-11-11  1:13           ` Jeremy Allison
@ 2024-11-11  1:25             ` Steve French
  2024-11-11  6:31             ` ronnie sahlberg
  1 sibling, 0 replies; 12+ messages in thread
From: Steve French @ 2024-11-11  1:25 UTC (permalink / raw)
  To: Jeremy Allison
  Cc: ronnie sahlberg, Dr. David Alan Gilbert, Steve French,
	Paulo Alcantara, Shyam Prasad N, Tom Talpey, Bharath S M, CIFS,
	LKML

SMB1/SMB2.0 can be disabled fairly easily in the Linux client build,
but there are occasional requests for it due to SMB1/CIFS still being
used to access some old devices. Also some of the SMB1 code was moved
to SMB1 specific files to make that clearer, and to make the module
smaller when SMB1/SMB2.0 is not enabled. Even when SMB1/SMB2.0 is
configured in the build, in the future it may be useful to not load
the SMB1 specific files (put them in a helper module that contains all
of the SMB1 specific code, rather in the main filesystem module)
unless the user specifies "vers=1.0" on mount.

On Sun, Nov 10, 2024 at 7:13 PM Jeremy Allison <jra@samba.org> wrote:
>
> On Mon, Nov 11, 2024 at 09:02:03AM +1000, ronnie sahlberg wrote:
> >All of SMB1 should be removed.  Not just disabled but deleted.
> >
> >What are the plans in samba? Any timeline to literally delete the smb1 code?
>
> It can already be compiled out of any build,
> so it's an option for any distro or user of
> Samba.
>
> I'm not sure deleting the code is needed at
> this point, as it still has legacy uses
> (there are still commercial uses of OS/2
> out there for example).



-- 
Thanks,

Steve

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] cifs: Remove pre-historic unused CIFSSMBCopy
  2024-11-11  1:13           ` Jeremy Allison
  2024-11-11  1:25             ` Steve French
@ 2024-11-11  6:31             ` ronnie sahlberg
  1 sibling, 0 replies; 12+ messages in thread
From: ronnie sahlberg @ 2024-11-11  6:31 UTC (permalink / raw)
  To: Jeremy Allison
  Cc: Steve French, Dr. David Alan Gilbert, Steve French,
	Paulo Alcantara, Shyam Prasad N, Tom Talpey, Bharath S M, CIFS,
	LKML

On Mon, 11 Nov 2024 at 11:13, Jeremy Allison <jra@samba.org> wrote:
>
> On Mon, Nov 11, 2024 at 09:02:03AM +1000, ronnie sahlberg wrote:
> >All of SMB1 should be removed.  Not just disabled but deleted.
> >
> >What are the plans in samba? Any timeline to literally delete the smb1 code?
>
> It can already be compiled out of any build,
> so it's an option for any distro or user of
> Samba.
>
> I'm not sure deleting the code is needed at
> this point, as it still has legacy uses
> (there are still commercial uses of OS/2
> out there for example).

There are still costs to maintain it. Especially since weird protocol
quirks keep being exposed and affecting semantics much higher up in
the stack.

There are probably still someone that runs 3Mbit Ethernet with 16-bit
MAC addresses.  But we don't support that with modern ethernet
drivers.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] cifs: Remove pre-historic unused CIFSSMBCopy
  2024-10-07 21:02 [PATCH] cifs: Remove pre-historic unused CIFSSMBCopy linux
  2024-11-07 21:04 ` Dr. David Alan Gilbert
@ 2024-11-13 17:09 ` Steve French
  2024-11-14 13:17   ` Dr. David Alan Gilbert
  1 sibling, 1 reply; 12+ messages in thread
From: Steve French @ 2024-11-13 17:09 UTC (permalink / raw)
  To: linux
  Cc: sfrench, pc, ronniesahlberg, sprasad, tom, bharathsm, linux-cifs,
	linux-kernel

merged into cifs-2.6.git for-next

On Mon, Oct 7, 2024 at 4:02 PM <linux@treblig.org> wrote:
>
> From: "Dr. David Alan Gilbert" <linux@treblig.org>
>
> CIFSSMBCopy() is unused, remove it.
>
> It seems to have been that way pre-git; looking in a historic
> archive, I think it landed around May 2004 in Linus'
> BKrev: 40ab7591J_OgkpHW-qhzZukvAUAw9g
> and was unused back then.
>
> Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
> ---
>  fs/smb/client/cifsproto.h |  7 -----
>  fs/smb/client/cifssmb.c   | 63 ---------------------------------------
>  2 files changed, 70 deletions(-)
>
> diff --git a/fs/smb/client/cifsproto.h b/fs/smb/client/cifsproto.h
> index 1d3470bca45e..8235b5a0aa2b 100644
> --- a/fs/smb/client/cifsproto.h
> +++ b/fs/smb/client/cifsproto.h
> @@ -549,13 +549,6 @@ extern int generate_smb311signingkey(struct cifs_ses *ses,
>                                      struct TCP_Server_Info *server);
>
>  #ifdef CONFIG_CIFS_ALLOW_INSECURE_LEGACY
> -extern int CIFSSMBCopy(unsigned int xid,
> -                       struct cifs_tcon *source_tcon,
> -                       const char *fromName,
> -                       const __u16 target_tid,
> -                       const char *toName, const int flags,
> -                       const struct nls_table *nls_codepage,
> -                       int remap_special_chars);
>  extern ssize_t CIFSSMBQAllEAs(const unsigned int xid, struct cifs_tcon *tcon,
>                         const unsigned char *searchName,
>                         const unsigned char *ea_name, char *EAData,
> diff --git a/fs/smb/client/cifssmb.c b/fs/smb/client/cifssmb.c
> index c6f15dbe860a..ca50ac652e02 100644
> --- a/fs/smb/client/cifssmb.c
> +++ b/fs/smb/client/cifssmb.c
> @@ -2339,69 +2339,6 @@ int CIFSSMBRenameOpenFile(const unsigned int xid, struct cifs_tcon *pTcon,
>         return rc;
>  }
>
> -int
> -CIFSSMBCopy(const unsigned int xid, struct cifs_tcon *tcon,
> -           const char *fromName, const __u16 target_tid, const char *toName,
> -           const int flags, const struct nls_table *nls_codepage, int remap)
> -{
> -       int rc = 0;
> -       COPY_REQ *pSMB = NULL;
> -       COPY_RSP *pSMBr = NULL;
> -       int bytes_returned;
> -       int name_len, name_len2;
> -       __u16 count;
> -
> -       cifs_dbg(FYI, "In CIFSSMBCopy\n");
> -copyRetry:
> -       rc = smb_init(SMB_COM_COPY, 1, tcon, (void **) &pSMB,
> -                       (void **) &pSMBr);
> -       if (rc)
> -               return rc;
> -
> -       pSMB->BufferFormat = 0x04;
> -       pSMB->Tid2 = target_tid;
> -
> -       pSMB->Flags = cpu_to_le16(flags & COPY_TREE);
> -
> -       if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
> -               name_len = cifsConvertToUTF16((__le16 *) pSMB->OldFileName,
> -                                             fromName, PATH_MAX, nls_codepage,
> -                                             remap);
> -               name_len++;     /* trailing null */
> -               name_len *= 2;
> -               pSMB->OldFileName[name_len] = 0x04;     /* pad */
> -               /* protocol requires ASCII signature byte on Unicode string */
> -               pSMB->OldFileName[name_len + 1] = 0x00;
> -               name_len2 =
> -                   cifsConvertToUTF16((__le16 *)&pSMB->OldFileName[name_len+2],
> -                                      toName, PATH_MAX, nls_codepage, remap);
> -               name_len2 += 1 /* trailing null */  + 1 /* Signature word */ ;
> -               name_len2 *= 2; /* convert to bytes */
> -       } else {
> -               name_len = copy_path_name(pSMB->OldFileName, fromName);
> -               pSMB->OldFileName[name_len] = 0x04;  /* 2nd buffer format */
> -               name_len2 = copy_path_name(pSMB->OldFileName+name_len+1, toName);
> -               name_len2++;    /* signature byte */
> -       }
> -
> -       count = 1 /* 1st signature byte */  + name_len + name_len2;
> -       inc_rfc1001_len(pSMB, count);
> -       pSMB->ByteCount = cpu_to_le16(count);
> -
> -       rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB,
> -               (struct smb_hdr *) pSMBr, &bytes_returned, 0);
> -       if (rc) {
> -               cifs_dbg(FYI, "Send error in copy = %d with %d files copied\n",
> -                        rc, le16_to_cpu(pSMBr->CopyCount));
> -       }
> -       cifs_buf_release(pSMB);
> -
> -       if (rc == -EAGAIN)
> -               goto copyRetry;
> -
> -       return rc;
> -}
> -
>  int
>  CIFSUnixCreateSymLink(const unsigned int xid, struct cifs_tcon *tcon,
>                       const char *fromName, const char *toName,
> --
> 2.46.2
>
>


-- 
Thanks,

Steve

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] cifs: Remove pre-historic unused CIFSSMBCopy
  2024-11-13 17:09 ` Steve French
@ 2024-11-14 13:17   ` Dr. David Alan Gilbert
  0 siblings, 0 replies; 12+ messages in thread
From: Dr. David Alan Gilbert @ 2024-11-14 13:17 UTC (permalink / raw)
  To: Steve French
  Cc: sfrench, pc, ronniesahlberg, sprasad, tom, bharathsm, linux-cifs,
	linux-kernel

* Steve French (smfrench@gmail.com) wrote:
> merged into cifs-2.6.git for-next

Thanks!

Dave

> On Mon, Oct 7, 2024 at 4:02 PM <linux@treblig.org> wrote:
> >
> > From: "Dr. David Alan Gilbert" <linux@treblig.org>
> >
> > CIFSSMBCopy() is unused, remove it.
> >
> > It seems to have been that way pre-git; looking in a historic
> > archive, I think it landed around May 2004 in Linus'
> > BKrev: 40ab7591J_OgkpHW-qhzZukvAUAw9g
> > and was unused back then.
> >
> > Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org>
> > ---
> >  fs/smb/client/cifsproto.h |  7 -----
> >  fs/smb/client/cifssmb.c   | 63 ---------------------------------------
> >  2 files changed, 70 deletions(-)
> >
> > diff --git a/fs/smb/client/cifsproto.h b/fs/smb/client/cifsproto.h
> > index 1d3470bca45e..8235b5a0aa2b 100644
> > --- a/fs/smb/client/cifsproto.h
> > +++ b/fs/smb/client/cifsproto.h
> > @@ -549,13 +549,6 @@ extern int generate_smb311signingkey(struct cifs_ses *ses,
> >                                      struct TCP_Server_Info *server);
> >
> >  #ifdef CONFIG_CIFS_ALLOW_INSECURE_LEGACY
> > -extern int CIFSSMBCopy(unsigned int xid,
> > -                       struct cifs_tcon *source_tcon,
> > -                       const char *fromName,
> > -                       const __u16 target_tid,
> > -                       const char *toName, const int flags,
> > -                       const struct nls_table *nls_codepage,
> > -                       int remap_special_chars);
> >  extern ssize_t CIFSSMBQAllEAs(const unsigned int xid, struct cifs_tcon *tcon,
> >                         const unsigned char *searchName,
> >                         const unsigned char *ea_name, char *EAData,
> > diff --git a/fs/smb/client/cifssmb.c b/fs/smb/client/cifssmb.c
> > index c6f15dbe860a..ca50ac652e02 100644
> > --- a/fs/smb/client/cifssmb.c
> > +++ b/fs/smb/client/cifssmb.c
> > @@ -2339,69 +2339,6 @@ int CIFSSMBRenameOpenFile(const unsigned int xid, struct cifs_tcon *pTcon,
> >         return rc;
> >  }
> >
> > -int
> > -CIFSSMBCopy(const unsigned int xid, struct cifs_tcon *tcon,
> > -           const char *fromName, const __u16 target_tid, const char *toName,
> > -           const int flags, const struct nls_table *nls_codepage, int remap)
> > -{
> > -       int rc = 0;
> > -       COPY_REQ *pSMB = NULL;
> > -       COPY_RSP *pSMBr = NULL;
> > -       int bytes_returned;
> > -       int name_len, name_len2;
> > -       __u16 count;
> > -
> > -       cifs_dbg(FYI, "In CIFSSMBCopy\n");
> > -copyRetry:
> > -       rc = smb_init(SMB_COM_COPY, 1, tcon, (void **) &pSMB,
> > -                       (void **) &pSMBr);
> > -       if (rc)
> > -               return rc;
> > -
> > -       pSMB->BufferFormat = 0x04;
> > -       pSMB->Tid2 = target_tid;
> > -
> > -       pSMB->Flags = cpu_to_le16(flags & COPY_TREE);
> > -
> > -       if (pSMB->hdr.Flags2 & SMBFLG2_UNICODE) {
> > -               name_len = cifsConvertToUTF16((__le16 *) pSMB->OldFileName,
> > -                                             fromName, PATH_MAX, nls_codepage,
> > -                                             remap);
> > -               name_len++;     /* trailing null */
> > -               name_len *= 2;
> > -               pSMB->OldFileName[name_len] = 0x04;     /* pad */
> > -               /* protocol requires ASCII signature byte on Unicode string */
> > -               pSMB->OldFileName[name_len + 1] = 0x00;
> > -               name_len2 =
> > -                   cifsConvertToUTF16((__le16 *)&pSMB->OldFileName[name_len+2],
> > -                                      toName, PATH_MAX, nls_codepage, remap);
> > -               name_len2 += 1 /* trailing null */  + 1 /* Signature word */ ;
> > -               name_len2 *= 2; /* convert to bytes */
> > -       } else {
> > -               name_len = copy_path_name(pSMB->OldFileName, fromName);
> > -               pSMB->OldFileName[name_len] = 0x04;  /* 2nd buffer format */
> > -               name_len2 = copy_path_name(pSMB->OldFileName+name_len+1, toName);
> > -               name_len2++;    /* signature byte */
> > -       }
> > -
> > -       count = 1 /* 1st signature byte */  + name_len + name_len2;
> > -       inc_rfc1001_len(pSMB, count);
> > -       pSMB->ByteCount = cpu_to_le16(count);
> > -
> > -       rc = SendReceive(xid, tcon->ses, (struct smb_hdr *) pSMB,
> > -               (struct smb_hdr *) pSMBr, &bytes_returned, 0);
> > -       if (rc) {
> > -               cifs_dbg(FYI, "Send error in copy = %d with %d files copied\n",
> > -                        rc, le16_to_cpu(pSMBr->CopyCount));
> > -       }
> > -       cifs_buf_release(pSMB);
> > -
> > -       if (rc == -EAGAIN)
> > -               goto copyRetry;
> > -
> > -       return rc;
> > -}
> > -
> >  int
> >  CIFSUnixCreateSymLink(const unsigned int xid, struct cifs_tcon *tcon,
> >                       const char *fromName, const char *toName,
> > --
> > 2.46.2
> >
> >
> 
> 
> -- 
> Thanks,
> 
> Steve
> 
-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2024-11-14 13:18 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-07 21:02 [PATCH] cifs: Remove pre-historic unused CIFSSMBCopy linux
2024-11-07 21:04 ` Dr. David Alan Gilbert
     [not found]   ` <CAH2r5mvL+xXH_nnoKKKnVPFo_xtOb=8mPSqrG28Dgngx6Aab7Q@mail.gmail.com>
2024-11-09  4:09     ` Steve French
2024-11-10  0:47       ` Tom Talpey
2024-11-10  1:09         ` Dr. David Alan Gilbert
2024-11-10 19:51       ` Jeremy Allison
2024-11-10 23:02         ` ronnie sahlberg
2024-11-11  1:13           ` Jeremy Allison
2024-11-11  1:25             ` Steve French
2024-11-11  6:31             ` ronnie sahlberg
2024-11-13 17:09 ` Steve French
2024-11-14 13:17   ` Dr. David Alan Gilbert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox