fuse: Fix InodeRetrieveCache to retrieve data in chunks
It turned out that: 1. Linux kernel cannot send data in chunks bigger than what was configured as MaxWrite on init, and 2. if we ask for more, and that more, after capping to kernel write maxium, is more than configured MaxWrite, the kernel will simply drop NOTIFY_REPLY message. This, hopefully, will be fixed https://marc.info/?l=linux-fsdevel&m=155000277921155&w=2 but we cannot count on this fix to be present on older kernels, and even if it is there, we still won't get more than MaxWrite data. -> Rework InodeRetrieveCache to retrieve the data in chunks. NOTE1: we do not load users with this FUSE exchange details and instead of returning less content than requested, try to retrieve it all. NOTE2: without changes to fuse/server.go, added test will get stuck (see details in above link to linux-fsdevel patch).
Showing
Please register or sign in to comment