Skip to content

feat: add useIno option - #18

Open
aron-cf wants to merge 1 commit into
mmdevries:mainfrom
aron-cf:use-ino-option
Open

aron-cf wants to merge 1 commit into
mmdevries:mainfrom
aron-cf:use-ino-option

Conversation

@aron-cf

@aron-cf aron-cf commented Oct 12, 2026

Copy link
Copy Markdown

Summary

Adds a useIno option (alias use_ino) that sets fuse_config.use_ino, so the ino returned by getattr is reported as st_ino. Without it libfuse substitutes its own node ids, and two hard links to one file stat as different inodes.

Related to #16 and #17

In FUSE 3, use_ino is a fuse_config field and fuse_new() rejects it as a mount option. It's therefore passed as an operation flag and applied in the init hook, the same way directIo is.

Compatibility

New opt-in boolean; nothing changes when it's omitted. Linux and macFUSE.

Verification

Debian trixie (libfuse 3.17.2) and bookworm (3.14, build only), Linux 7.0 (OrbStack), Node 22: npm run check, test:types, test:unit, test:fuzz and npm test all pass, including the new real-mount test/use-ino.js.

Release scope

  • This pull request does not change package versions, create release tags,
    add generated prebuilds, or publish artifacts.
  • Public behavior and TypeScript changes include matching tests and
    documentation.
  • Security-sensitive changes have been disclosed privately when required.

Expose fuse_config.use_ino as useIno, with the native spelling use_ino as
an alias. With it set, the ino returned by getattr is reported as st_ino;
without it libfuse substitutes its own node ids, so two hard links to one
file stat as different inodes.

FUSE 3 moved use_ino from the mount options into struct fuse_config, and
fuse_new() rejects it on the command line, so it travels as a new
operation flag that the init hook applies, the same way directIo does.
@aron-cf
aron-cf requested a review from mmdevries as a code owner October 12, 2026 13:43

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant