|
|
Log in / Subscribe / Register

ntfs: Support Windows native symbolic links

From:  Hyunchul Lee <hyc.lee-AT-gmail.com>
To:  Namjae Jeon <linkinjeon-AT-kernel.org>
Subject:  [PATCH 0/7] ntfs: Support Windows native symbolic links
Date:  Fri, 12 Jun 2026 16:33:30 +0900
Message-ID:  <20260612-topic-symlink-v1-0-cc1ebf9528e1@gmail.com>
Cc:  Hyunchul Lee <hyc.lee-AT-gmail.com>, linux-fsdevel-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org
Archive-link:  Article

This patch series adds support for Windows native symbolic links and
introduces mount options to configure how symbolic links are resolved
and created.

Currently, the NTFS driver creates WSL-compatible symbolic links and
has limited support for native Windows symbolic links. This series
addresses these limitations.

1. Following/Resolving Symlinks & Junctions:
  - Add support for parsing and following Windows native symbolic links.
  - Introduce the "native_symlink=raw|rel" mount option to configure
    absolute target resolution.

2. Creating Symlinks:
  - Introduce the "symlink=wsl|native" mount option to choose the
    creation behavior of symlinks. Under "native", Windows native
    symbolic links are created by converting the target path to UTF-16
    Windows format.

3. Fixes & Cleanups:
  - Fix an issue where the size of symbolic links is reported as 0.
  - Clean up target name conversion for WSL symlinks by avoiding
    redundant conversion.

4. Documentation:
  - Document the newly introduced mount options in ntfs.rst.

Signed-off-by: Hyunchul Lee <hyc.lee@gmail.com>
---
Hyunchul Lee (7):
      ntfs: fix incorrect size of symbolic link
      ntfs: support following Windows native symlink with relative paths
      ntfs: support following Windows native symlink with absolute paths
      ntfs: add native_symlink mount option
      ntfs: clean up target name conversion for WSL symlinks
      ntfs: support creating Windows native symlinks
      docs/fs/ntfs: add mount options to support Windows native symbolic links

 Documentation/filesystems/ntfs.rst |  13 ++
 fs/ntfs/file.c                     |  24 +-
 fs/ntfs/inode.c                    |  49 ++--
 fs/ntfs/inode.h                    |   2 +
 fs/ntfs/layout.h                   |  19 ++
 fs/ntfs/namei.c                    |  22 +-
 fs/ntfs/reparse.c                  | 461 +++++++++++++++++++++++++++++++++----
 fs/ntfs/reparse.h                  |   6 +-
 fs/ntfs/super.c                    |  38 +++
 fs/ntfs/volume.h                   |   5 +
 10 files changed, 563 insertions(+), 76 deletions(-)
---
base-commit: 5aec1efb11ab2a87d1e4be063830268f7980ec4a
change-id: 20260612-topic-symlink-d70873e4721e

Best regards,
-- 
Thanks,
Hyunchul




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds