Return SMB2_CREATE_FLAG_REPARSEPOINT in create response

Tom Talpey tom at talpey.com
Wed Jul 17 11:12:11 UTC 2024


On 7/16/2024 6:08 PM, Carson Buttars via samba-technical wrote:
> Hello all,
> 
> I just completed the mountpoint detection patch I've been working on, 
> and feedback on it would be great. Here is a link to it: 3141 
> <https://gitlab.com/samba-team/samba/-/merge_requests/3141>.
> 
> In working on this, I also stumbled upon the 
> SMB2_CREATE_FLAG_REPARSEPOINT (MS-SMB2 2.2.14 
> <https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-smb2/d166aa9e-0b53-410e-b35e-3933d8131927>) field in the create request, and it seems to not be implemented in any way. There's not a lot of information on it, but as far as I understand, it should be returned if the requested file is opened without the FILE_OPEN_REPARSE_POINT create option and the file is a in fact a reparse point. Am I understanding that right? Is there a good reason to or to not implement it?

The protocol requires the server to set it, and the Linux client does
inspect it, so clearly yes it should be implemented.

The Linux client sets a reparse_point boolean in the cifs_open_info_data
here:

 
https://elixir.bootlin.com/linux/latest/source/fs/smb/client/smb2inode.c#L851

But the document is silent on what the Windows client does, so it might
be worth raising a dochelp issue to clarify - I'll do that. I'm guessing
it will lead to incorrect behavior, but it's pretty much a corner case.

Good catch. Adding Linux client list btw.

Tom.



More information about the samba-technical mailing list