ls/stat on OneDrive causes download of files
Corinna Vinschen
corinna-cygwin@cygwin.com
Fri Mar 8 13:56:24 GMT 2024
On Mar 8 08:15, Jeffrey Altman via Cygwin wrote:
> On 3/8/2024 7:52 AM, Thomas Wolff via Cygwin wrote:
> > Am 08.03.2024 um 11:37 schrieb Corinna Vinschen via Cygwin:
> > > Yesterday I stumbled over a certain NtCreateFile flag:
> > >
> > > FILE_OPEN_NO_RECALL (0x00400000)
> > >
> > > Instructs any filters that perform offline storage or
> > > virtualization
> > > to not recall the contents of the file as a result of this open.
> > >
> > > MS-CIFS described it like this:
> > >
> > > FILE_OPEN_NO_RECALL
> > > 0x00400000
> > >
> > > In a hierarchical storage management environment, this option
> > > requests that the file SHOULD NOT be recalled from tertiary storage
> > > such as tape. A file recall can take up to several minutes in a
> > > hierarchical storage management environment. The clients can
> > > specify
> > > this option to avoid such delays.
> > >
> > > This sounds like we could simply add this flag to all NtOpenFile
> > > used for path conversion or stat-like calls, without having to care
> > > for any file attributes specificially.
> > >
> > > Does that make sense?
> > Sounds good, without even studying the other details...
> > I speculate some more handling would still be needed to avoid executable
> > detection via magic tags.
> >
> Agreed. FILE_OPEN_NO_RECALL has been defined for at least a decade but was
> not documented by Microsoft relatively recently.
Thanks for the feedback, guys.
> Another suggestion would be to try opening the file with
> FILE_READ_ATTRIBUTES instead of GENERIC_READ if the file data is not
> required. See
>
> https://github.com/microsoft/BuildXL/commit/4fb8e7ce07d243ccd95de0d66da551538a794493
Cygwin uses the minimum of required permissions in NtCreateFile/
NtOpenFile calls anyway.
I'm just running a test cygwin DLL locally with a lot of added
FILE_OPEN_NO_RECALL bits and a couple of added attribute checks for
being offline to allow skipping some code.
I think I'll push this change in a bit so we get a test release out
so people using OneDrive can test.
Thanks,
Corinna
More information about the Cygwin
mailing list