Skip to content

readdir returns d_ino==-1 in offset==0 mode #583

Description

@mpartel

(Background: @McBane87 and I are trying to upgrade bindfs to FUSE 3.)

Always passing 0 as the offset to the readdir filler function ("mode 1" in fuse.h) causes clients to always see d_ino == -1 when they readdir (test program).

  • The passthrough example exhibits this problem, but passthrough_fh and passthrough_ll don't.
  • use_ino is set.
  • It doesn't matter whether FUSE_FILL_DIR_PLUS is passed.

Possible fix

On this line, remove off && .

Then passthrough passes through inode numbers if I just change it to (always) pass FUSE_FILL_DIR_PLUS.

I don't know the code well enough to tell whether that change is safe. It doesn't break any tests at least.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions