rdr, hardlinks and cache

Hi all,

While researching a related topic, I was looking at FILE_OBJECT’s for hard
linked files on a 2k8 share (vista client).

The FsContext and SectionObjectPointers for 2 links to the same file were
different. Same test on NTFS shows the pointers to be identical, which was
what I expected.

I suppose that RDR doesn’t really have a way to tell that two links are
actually the same file since ‘file id’ over the network could be unreliable.

So, does this mean that cache coherence for hard linked files over the
network is not ensured? Or am I missing something?

The existance of MRxAreFilesAliased() suggests a redirector should know how
to sort such things out, though the WDK doesn’t say when/why RDBSS might
think “two files that appear to be the same but have different names”.

Thanks.

Tom

> I suppose that RDR doesn’t really have a way to tell that two links are

actually the same file since ‘file id’ over the network could be unreliable.

Yes.

So, does this mean that cache coherence for hard linked files over the
network is not ensured? Or am I missing something?

Not necessary.

If the server-side oplock engine would be in the kernel itself or SRV - this would be so.

But this engine is in NTFS, which knows that the 2 FOs reference the same SCB.


Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com