[cifs-protocol] [EXTERNAL] Re: SET_REPARSE_POINT vs QUERY_DIRECTORY? - TrackingID#2301020040002842

Jeff McCashland (He/him) jeffm at microsoft.com
Mon Feb 6 18:21:03 UTC 2023


Hi Volker,

We have updated [MS-FSA] for the next release to address this issue by adding the following descriptive text:

2.1.1.4 Per Link
A Link structure connects a file name to a directory containing the file.  Additionally, a Link duplicates certain information about the file (timestamps, sizes, etc.), that can be used to satisfy directory query operations (see section 2.1.5.6).  Note that for performance reasons an object store MAY delay updating a Link’s duplicated information following modifications to a file, resulting in directory queries returning stale information.  Some file modifications require an immediate update of the duplicated information, which will be noted in this document by invoking the algorithm described in section 2.1.4.18.

2.1.5.6.3 Directory Information Queries
Directory queries return requested information about files contained in the directory, based on the Link structures in Open.DirectoryList.  Note that for performance reasons an object store MAY delay updating a Link’s duplicated information following modifications to a file, resulting in directory queries returning stale information.  Some file modifications require an immediate update of the duplicated information, which will be noted in this document by invoking the algorithm described in section 2.1.4.18.

I hope that helps!
Best regards,
Jeff McCashland (He/him) | Senior Escalation Engineer | Microsoft Protocol Open Specifications Team
Phone: +1 (425) 703-8300 x38300 | Hours: 9am-5pm | Time zone: (UTC-08:00) Pacific Time (US and Canada)
Local country phone number found here: http://support.microsoft.com/globalenglish<https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fsupport.microsoft.com%2Fglobalenglish&data=02%7C01%7Cjeffm%40microsoft.com%7C92c4c7bb8c6d4412e78108d80d79f45f%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637274164726698458&sdata=KtEL7V58Q7rscYvr9cPik%2FmYKZIv0rh3E3kBdGywwwI%3D&reserved=0> | Extension 1138300


________________________________
From: Volker Lendecke <Volker.Lendecke at sernet.de>
Sent: Monday, January 9, 2023 12:11 PM
To: Jeff McCashland (He/him) <jeffm at microsoft.com>
Cc: cifs-protocol at lists.samba.org <cifs-protocol at lists.samba.org>; Microsoft Support <supportmail at microsoft.com>
Subject: [EXTERNAL] Re: SET_REPARSE_POINT vs QUERY_DIRECTORY? - TrackingID#2301020040002842

Am Mon, Jan 09, 2023 at 06:54:50PM +0000 schrieb Jeff McCashland (He/him):
> QUERY_DIRECTORY results are read from the directory's duplicated
> information. [MS-FSA] documents that duplicated information is
> updated when the file handle is closed:
>
> 2.1.5.5     Server Requests Closing an Open
> §     Phase 3 - File Deletion:
> §     If LinkDeleted is FALSE:
> §     The object store MUST update the duplicated information as specified in section 2.1.4.18 with Link equal to Link.
> §     EndIf
>
> However, duplicated information is not updated when SET_REPARSE_POINT is handled (section 2.1.5.10.37).
>
> Were you to immediately query the file state after setting the
> reparse point, you would see the change. However, the change isn't
> shown in directory queries until the duplicated information is
> updated.

... subtle stuff you find when really reading FSA. Thanks, I was not aware of this!

Volker
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.samba.org/pipermail/cifs-protocol/attachments/20230206/c555662a/attachment.htm>


More information about the cifs-protocol mailing list