[Question] getdents() calls use very small buffer when FUSE mount

Hello all!

I am currently working on a FUSE filesystem where a directory can
contain a large amount of entries. When running `strace ls` I can see a
lot of calls to getdents64() but with *very* small buffer:

    getdents64(3, /* 19 entries */, 32768)  = 1368
    getdents64(3, /* 19 entries */, 32768)  = 1368
    getdents64(3, /* 19 entries */, 32768)  = 1368
    getdents64(3, /* 19 entries */, 32768)  = 1368
    getdents64(3, /* 19 entries */, 32768)  = 1368
    getdents64(3, /* 19 entries */, 32768)  = 1368
    getdents64(3, /* 19 entries */, 32768)  = 1368
    ...

This is completely killing the performances of the filesystem and I was
wondering what causes such buffer size limitation? I stumbled upon a few
posts, like this one:
https://bugzilla.redhat.com/show_bug.cgi?id=1478411 about the same kind
of problem, however I am not sure whether there is still a pending patch
somewhere or a particular option to set in order to fix this issue?

My system is:

- Debian GNU/Linux bullseye/sid (testing)
- Linux kernel 5.8.0-2-amd64 (x86-64)
- libfuse 3.10.0

Thanks in advance for your insights.
Sincerely,