You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello, I'm a dev for ZFS on Windows, and I am looking at various ways to store a ReparsePoint on the filesystem, with compatibility in mind.
From the Unix world, for example illumos, when using Samba, they appear to convert ReparsePoint to string format:
* Format of reparse data:
* @{REPARSE@{servicetype:data} [@{servicetype:data}] ...}
* REPARSE_TAG_STR@{REPARSE_TOKEN} [@{REPARSE_TOKEN}] ... REPARSE_TAG_END
then call VOP_SYMLINK() to store it as string, with XAT_REPARSE set (which maps to FILE_ATTRIBUTE_REPARSE_POINT.)
But this is missing a parser from the Windows struct REPARSE_DATA_BUFFER to string, and back.
How does WSL2 store ReparsePoints when over a Linux (ext3/4) mountpoints? Does it only allow type SYMLINK (posix), and reject all other types? Or does it store full ReparsePoints in some format? (EA/xattr?)
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hello, I'm a dev for ZFS on Windows, and I am looking at various ways to store a ReparsePoint on the filesystem, with compatibility in mind.
From the Unix world, for example illumos, when using Samba, they appear to convert ReparsePoint to string format:
then call
VOP_SYMLINK()
to store it as string, withXAT_REPARSE
set (which maps toFILE_ATTRIBUTE_REPARSE_POINT
.)But this is missing a parser from the Windows
struct REPARSE_DATA_BUFFER
to string, and back.How does WSL2 store ReparsePoints when over a Linux (ext3/4) mountpoints? Does it only allow type SYMLINK (posix), and reject all other types? Or does it store full ReparsePoints in some format? (EA/xattr?)
Beta Was this translation helpful? Give feedback.
All reactions