aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_custom_io.py
diff options
context:
space:
mode:
authorBernd Schubert <bschubert@ddn.com>2024-12-16 23:37:29 +0100
committerBernd Schubert <bernd.schubert@fastmail.fm>2024-12-18 09:28:18 +0100
commit752b59ac087658adb50d50a492d228d53081d195 (patch)
treeb0fa494d3a133a110fc20513ba74dee73e5031d8 /test/test_custom_io.py
parentd0b0fc27fdfc78a13a07c1ea04b728bebc8c6e87 (diff)
downloadlibfuse-752b59ac087658adb50d50a492d228d53081d195.tar.gz
Allow to have page aligned writes
Read/writes IOs should be page aligned as fuse server might need to copy data to another buffer otherwise in order to fulfill network or device storage requirements. Simple reproducer is example/passthrough* and opening a file with O_DIRECT - without this change writing to that file failed with -EINVAL if the underlying file system was using ext4 (for passthrough_hp the 'passthrough' feature has to be disabled). The mis-alignment from fuse kernel is not ideal, but we can handle it by allocation one page more than needed and then using a buffer that is set up to compensate for kernel misalignment. This also only set se->buf_reallocable to true when called by a libfuse internal caller - we do not know what external callers are doing with the buffer - update to commit 0e0f43b79b9b
Diffstat (limited to 'test/test_custom_io.py')
0 files changed, 0 insertions, 0 deletions