Re: Need advice about do we need this if condition

From: Steve French
Date: Wed Apr 17 2019 - 09:32:28 EST


On Wed, Apr 17, 2019 at 2:59 AM Valdis KlÄtnieks
<valdis.kletnieks@xxxxxx> wrote:
>
> On Wed, 17 Apr 2019 08:25:22 +0300
>
> (Adding Al Viro and the linux-fsdevel lists, as at the very least, the manpage
> for the syscall needs some clarification...)
>
> > hello I am trying to fix https://bugzilla.kernel.org/show_bug.cgi?id=202935
>
> So - convince us that it's in fact a "bug" and not a restriction.
>
> > I found cause
> > https://github.com/torvalds/linux/blob/master/fs/cifs/cifsfs.c#L1076 not
> > sure is it correct to remove such condition ?
>
> Does the CIFS protocol support copying from a file to another location in the
> same file? Was it intended to work on *any* filesystem?

Looks like it should be allowed on the same file as long as the source
and target file ranges do not overlap

See https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-fscc/1ee611b7-43f0-468c-8a9d-28f04cdc3376
section 2.3.7.2 and 2.3.8
Server returns STATUS_NOT_SUPPORTED if "The source and target
destination ranges overlap on the same file."

and line 112 and following of smb2_ioctl_filesys.c in Samba code

https://git.samba.org/?p=samba.git;a=blob;f=source3/smbd/smb2_ioctl_filesys.c;h=8a9c8c64ec9ddbca4623251555f4792d76aa6e44;hb=refs/heads/master#l112

> (For that matter, the manpage for the syscall is unclear on whether having both
> file descriptors open on the same file is OK or not - for bonus ambiguity
> points, there's exactly zero discussion of what happens if source and
> destination overlap destructively).
>


--
Thanks,

Steve