Commit b6a0e43
committed
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 #591 parent 850bd3e commit b6a0e43
1 file changed
+3
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
917 | 917 | | |
918 | 918 | | |
919 | 919 | | |
| 920 | + | |
920 | 921 | | |
921 | 922 | | |
922 | 923 | | |
| |||
927 | 928 | | |
928 | 929 | | |
929 | 930 | | |
930 | | - | |
| 931 | + | |
931 | 932 | | |
932 | 933 | | |
933 | 934 | | |
| |||
975 | 976 | | |
976 | 977 | | |
977 | 978 | | |
978 | | - | |
| 979 | + | |
979 | 980 | | |
980 | 981 | | |
981 | 982 | | |
| |||
0 commit comments