linux/fs/fuse
Joanne Koong f9a49aa302 fs/writeback: skip AS_NO_DATA_INTEGRITY mappings in wait_sb_inodes()
Above the while() loop in wait_sb_inodes(), we document that we must wait
for all pages under writeback for data integrity.  Consequently, if a
mapping, like fuse, traditionally does not have data integrity semantics,
there is no need to wait at all; we can simply skip these inodes.

This restores fuse back to prior behavior where syncs are no-ops.  This
fixes a user regression where if a system is running a faulty fuse server
that does not reply to issued write requests, this causes wait_sb_inodes()
to wait forever.

Link: https://lkml.kernel.org/r/20260105211737.4105620-2-joannelkoong@gmail.com
Fixes: 0c58a97f91 ("fuse: remove tmp folio for writebacks and internal rb tree")
Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
Reported-by: Athul Krishna <athul.krishna.kr@protonmail.com>
Reported-by: J. Neuschäfer <j.neuschaefer@gmx.net>
Reviewed-by: Bernd Schubert <bschubert@ddn.com>
Tested-by: J. Neuschäfer <j.neuschaefer@gmx.net>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Bernd Schubert <bschubert@ddn.com>
Cc: Bonaccorso Salvatore <carnil@debian.org>
Cc: Christian Brauner <brauner@kernel.org>
Cc: David Hildenbrand <david@kernel.org>
Cc: Jan Kara <jack@suse.cz>
Cc: "Liam R. Howlett" <Liam.Howlett@oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Miklos Szeredi <miklos@szeredi.hu>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2026-01-19 12:30:01 -08:00
..
acl.c fuse: support idmapped ->set_acl 2024-09-04 16:51:11 +02:00
backing.c fuse: move the backing file idr and code into a new source file 2025-09-25 16:06:02 +02:00
control.c convert fuse_ctl 2025-11-16 01:35:03 -05:00
cuse.c fuse: allow synchronous FUSE_INIT 2025-09-02 11:14:15 +02:00
dax.c mm: remove callers of pfn_t functionality 2025-07-09 22:42:19 -07:00
dev_uring_i.h fuse: add kernel-enforced timeout option for requests 2025-03-31 14:59:25 +02:00
dev_uring.c fuse update for 6.19 2025-12-05 15:25:13 -08:00
dev.c fuse: new work queue to invalidate dentries from old epochs 2025-11-12 11:45:03 +01:00
dir.c fuse update for 6.19 2025-12-05 15:25:13 -08:00
file.c fs/writeback: skip AS_NO_DATA_INTEGRITY mappings in wait_sb_inodes() 2026-01-19 12:30:01 -08:00
fuse_dev_i.h fuse: missing copy_finish in fuse-over-io-uring argument copies 2025-11-12 11:45:03 +01:00
fuse_i.h fuse update for 6.19 2025-12-05 15:25:13 -08:00
fuse_trace.h fuse: add simple request tracepoints 2024-08-29 11:43:13 +02:00
inode.c fuse update for 6.19 2025-12-05 15:25:13 -08:00
ioctl.c Revert "fs: make vfs_fileattr_[get|set] return -EOPNOTSUPP" 2025-10-10 13:44:03 +02:00
iomode.c fuse: remove unused 'inode' parameter in fuse_passthrough_open 2025-08-27 14:29:44 +02:00
Kconfig fuse: fix references to fuse.rst -> fuse/fuse.rst 2025-09-02 11:14:15 +02:00
Makefile fuse: move CREATE_TRACE_POINTS to a separate file 2025-09-25 16:22:18 +02:00
passthrough.c fuse: move the backing file idr and code into a new source file 2025-09-25 16:06:02 +02:00
readdir.c fuse: increase readdir buffer size 2025-05-29 12:31:24 +02:00
sysctl.c fuse: add default_request_timeout and max_request_timeout sysctls 2025-03-31 14:59:27 +02:00
trace.c fuse: move CREATE_TRACE_POINTS to a separate file 2025-09-25 16:22:18 +02:00
virtio_fs.c virtio-fs: fix incorrect check for fsvq->kobj 2025-11-05 14:00:16 +01:00
xattr.c fuse: make args->in_args[0] to be always the header 2025-01-24 11:54:02 +01:00