Improve transcoded FUSE cache/passthrough access
This change updates the node#transforms_complete flag on each lookup.
With the correct transforms_complete flag we can ensure the kernel
page cache has the correct bytes after the transcode file cache has
been cleared.
We achieve this by flusing the page cache on FUSE_OPEN
if transforms is not complete. This fixes the case where the following
happens:
1. Read transcoded content and set transforms_complete=true
2. Clear the transcoded cache
3. Read transcoded content again
Lastly, we also set direct_io=true if transforms_complete=false. This
will allow us handle transcode failures more gracefully by returning
the original bytes without corrupting the kernel page cache
Test: atest TranscodeTest
Bug: 181846007
Change-Id: Ibb93a79f2544688bf440180d9e1dbae61f76d287
3 files changed