[PATCH][WIP] query smb3 reparse tags for special files

Steve French smfrench at gmail.com
Thu Oct 22 17:14:32 UTC 2020


on query dir I see the EAsize set to the reparse tag as expected (in
query dir), but not on FILE_ALL_INFO (query info).

So as you indicated, there are only the query dir info levels (not
query info ones) which allow returning what we need for reparse point
special files - so will have to use fsctl as in smb2_query_symlink.


On Thu, Oct 22, 2020 at 6:37 AM Aurélien Aptel <aaptel at suse.com> wrote:
>
> Steve French <smfrench at gmail.com> writes:
> > smbfsctl.h:#define IO_REPARSE_TAG_LX_SYMLINK    0xA000001D
> > smbfsctl.h:#define IO_REPARSE_TAG_LX_FIFO            0x80000024
> > smbfsctl.h:#define IO_REPARSE_TAG_LX_CHR             0x80000025
> > smbfsctl.h:#define IO_REPARSE_TAG_LX_BLK             0x80000026
> >
> > These also make sense for us to use more broadly because it simplifies readdir
> >
> > but ... my first attempt at querying this using infolevel 33
> > FileReparsePointInformation (see MS-FSCC section 2.4.35) failed ...
> > with Windows 10 returning STATUS_NOT_SUPPORTED when querying various
> > reparse points (created by WSL indirectly) including fifos, symlinks
> > and char devices.
> >
> > I can switch approaches and try to do the smb3 fsctl to query reparse
> > info instead but was hoping that query info would work.  Any idea if
> > there is another info level that would allow me to query the tag?
>
> According to [MS-FSCC] if the file has the REPARSE_TAG attribute, the
> EaSize field must be interpreted as a reparse tag for these info levels:
>
> * FileFullDirectoryInfo
> * FileBothDirectoryInfo
> * FileIdFullDirectoryInfo
> * FileIdBothDirectoryInfo
>
> Otherwise we have code for querying the reparse tag in
> smb2_query_symlink():
>
>         rc = SMB2_ioctl_init(tcon, server,
>                              &rqst[1], fid.persistent_fid,
>                              fid.volatile_fid, FSCTL_GET_REPARSE_POINT,
>                              true /* is_fctl */, NULL, 0,
>                              CIFSMaxBufSize -
>                              MAX_SMB2_CREATE_RESPONSE_SIZE -
>                              MAX_SMB2_CLOSE_RESPONSE_SIZE);
>
> --
> Aurélien Aptel / SUSE Labs Samba Team
> GPG: 1839 CB5F 9F5B FB9B AA97  8C99 03C8 A49B 521B D5D3
> SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg, DE
> GF: Felix Imendörffer, Mary Higgins, Sri Rasiah HRB 247165 (AG München)
>


-- 
Thanks,

Steve



More information about the samba-technical mailing list