-
6a533f21
by Elizabeth Figura at 2025-11-17T11:00:26-06:00
server: Retain the ? suffix when renaming or linking reparse points.
-
6d41a058
by Erich Hoover at 2025-11-17T11:00:26-06:00
kernelbase: Open the reparse point in MoveFileWithProgress().
-
303b3b73
by Elizabeth Figura at 2025-11-17T11:00:26-06:00
kernelbase: Open the reparse point in CreateHardLink().
The broken deletion logic mentioned here is not specific to reparse points.
Essentially, we delay deletion until all inodes are closed, but this is wrong;
it should be tracked per path instead.
-
47cd0f7f
by Elizabeth Figura at 2025-11-17T11:00:26-06:00
kernelbase: Open the reparse point in SetFileAttributes().
-
6b10e8e9
by Elizabeth Figura at 2025-11-17T11:00:26-06:00
ntdll: Handle . and .. segments in relative symlinks.
Note that we don't want to use collapse_path() as-is, because everything else it
does (i.e. forward slashes, duplicate slashes, trailing dots) should explicitly
not apply to symlinks. We also should fail when rewinding past the drive root,
rather than simply ignoring those .. segments.
The FIXME introduced here related to unwinding past the RootDirectory handle is
not particularly problematic to address (we just need to query the server for
its whole path). I've left it as a FIXME simply because it takes extra work to
implement and is unlikely to come up; RootDirectory not used anywhere in
kernel32 or kernelbase file code.