This patchset contains some minor clean up / refactoring for the fuse writeback code. As a sanity check, I ran fio to check against crashes - ./libfuse/build/example/passthrough_ll -o cache=always -o writeback -o source=~/fstests ~/tmp_mount fio --name=test --ioengine=psync --iodepth=1 --rw=randwrite --bs=1M --direct=0 --size=2G --numjobs=2 --directory=/home/user/tmp_mount and (suggested by Miklos) fsx test - sudo HOST_OPTIONS=fuse.config ./check -fuse generic/616 generic/616 (soak buffered fsx test) without the -U (io_uring) flag (verified this uses the fuse_writepages_fill path) v3: https://lore.kernel.org/linux-fsdevel/20240823162730.521499-1-joannelkoong@xxxxxxxxx/ Changes from v3 -> v4: * Merge v3's 4/9 and 5/9 into 1 patch (Josef) * Merge v3's 7/9 and 9/9 into 1 patch v2: https://lore.kernel.org/linux-fsdevel/20240821232241.3573997-1-joannelkoong@xxxxxxxxx/ Changes from v2 -> v3: * Drop v2 9/9 (Miklos) * Split v2 8/9 into 2 patches (v3 8/9 and 9/9) to make review easier * Change error pattern usage (Miklos) v1: https://lore.kernel.org/linux-fsdevel/20240819182417.504672-1-joannelkoong@xxxxxxxxx/ Changes from v1 -> v2: * Added patches 2 and 4-9 * Add commit message to patch 1 (Jingbo) Joanne Koong (7): fuse: drop unused fuse_mount arg in fuse_writepage_finish() fuse: refactor finished writeback stats updates into helper function fuse: update stats for pages in dropped aux writeback list fuse: move initialization of fuse_file to fuse_writepages() instead of in callback fuse: convert fuse_writepages_fill() to use a folio for its tmp page fuse: move fuse file initialization to wpa allocation time fuse: refactor out shared logic in fuse_writepages_fill() and fuse_writepage_locked() fs/fuse/file.c | 167 +++++++++++++++++++++++++------------------------ 1 file changed, 86 insertions(+), 81 deletions(-) -- 2.43.5