This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fuse: instead of ENOENT, return nil with op.Entry.Child == 0
The kernel treats a zero nodeid the same as ENOENT, but respects caching: https://github.com/torvalds/linux/blob/2019fc96af228b412bdb2e8e0ad4b1fc12046a51/fs/fuse/dir.c#L353 This significantly reduces FUSE requests, e.g. during package builds: before: distri build -pkg=gtk+-2 438,42s user 160,10s system 569% cpu 1:45,12 total distri build -pkg=gtk+-2 435,83s user 157,86s system 572% cpu 1:43,78 total after: distri build -pkg=gtk+-2 372,39s user 84,34s system 809% cpu 56,400 total distri build -pkg=gtk+-2 373,22s user 85,02s system 812% cpu 56,366 total related to #59
- Loading branch information
Showing 1 changed file with 3 additions and 2 deletions.