linux/fs
David Howells c596bea145 netfs: Fix setting of BDP_ASYNC from iocb flags
Fix netfs_perform_write() to set BDP_ASYNC if IOCB_NOWAIT is set rather
than if IOCB_SYNC is not set.  It reflects asynchronicity in the sense of
not waiting rather than synchronicity in the sense of not returning until
the op is complete.

Without this, generic/590 fails on cifs in strict caching mode with a
complaint that one of the writes fails with EAGAIN.  The test can be
distilled down to:

        mount -t cifs /my/share /mnt -ostuff
        xfs_io -i -c 'falloc 0 8191M -c fsync -f /mnt/file
        xfs_io -i -c 'pwrite -b 1M -W 0 8191M' /mnt/file

Fixes: c38f4e96e6 ("netfs: Provide func to copy data to pagecache for buffered write")
Signed-off-by: David Howells <dhowells@redhat.com>
Link: https://lore.kernel.org/r/316306.1716306586@warthog.procyon.org.uk
Reviewed-by: Jens Axboe <axboe@kernel.dk>
cc: Jeff Layton <jlayton@kernel.org>
cc: Enzo Matsumiya <ematsumiya@suse.de>
cc: Jens Axboe <axboe@kernel.dk>
cc: Matthew Wilcox <willy@infradead.org>
cc: netfs@lists.linux.dev
cc: v9fs@lists.linux.dev
cc: linux-afs@lists.infradead.org
cc: linux-cifs@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
2024-05-24 13:34:07 +02:00
..
9p
adfs
affs
afs
autofs
bcachefs bcachefs changes for 6.10-rc1 2024-05-19 13:45:48 -07:00
befs
bfs
btrfs
cachefiles
ceph
coda
configfs
cramfs
crypto The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
debugfs
devpts
dlm
ecryptfs
efivarfs
efs
erofs
exfat
exportfs
ext2
ext4 Ext4 patches for the 6.10-rc1 merge window: 2024-05-18 14:11:54 -07:00
f2fs f2fs update for 6.10-rc1 2024-05-20 13:23:43 -07:00
fat
freevxfs
fuse
gfs2
hfs
hfsplus
hostfs
hpfs
hugetlbfs The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
iomap iomap: fault in smaller chunks for non-large folio mappings 2024-05-24 13:34:07 +02:00
isofs
jbd2
jffs2
jfs
kernfs
lockd
minix
netfs netfs: Fix setting of BDP_ASYNC from iocb flags 2024-05-24 13:34:07 +02:00
nfs The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
nfs_common
nfsd \n 2024-05-20 12:31:43 -07:00
nilfs2 Mainly singleton patches, documented in their respective changelogs. 2024-05-19 14:02:03 -07:00
nls
notify Revert "fanotify: remove unneeded sub-zero check for unsigned value" 2024-05-20 12:43:58 -07:00
ntfs3
ocfs2 Mainly singleton patches, documented in their respective changelogs. 2024-05-19 14:02:03 -07:00
omfs
openpromfs
orangefs
overlayfs
proc Mainly singleton patches, documented in their respective changelogs. 2024-05-19 14:02:03 -07:00
pstore
qnx4
qnx6
quota
ramfs
reiserfs \n 2024-05-20 12:49:25 -07:00
romfs
smb cifs: fix data corruption in read after invalidate 2024-05-15 17:22:59 -05:00
squashfs Mainly singleton patches, documented in their respective changelogs. 2024-05-19 14:02:03 -07:00
sysfs
sysv
tracefs tracing cleanups for v6.10: 2024-05-17 18:34:27 -07:00
ubifs
udf
ufs
unicode
vboxsf
verity
xfs New code for 6.10: 2024-05-20 12:55:12 -07:00
zonefs
aio.c
anon_inodes.c
attr.c
backing-file.c
bad_inode.c
binfmt_elf.c Mainly singleton patches, documented in their respective changelogs. 2024-05-19 14:02:03 -07:00
binfmt_elf_fdpic.c
binfmt_elf_test.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
buffer.c
char_dev.c
compat_binfmt_elf.c
coredump.c
d_path.c
dax.c
dcache.c
direct-io.c
drop_caches.c
eventfd.c
eventpoll.c
exec.c The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
fcntl.c
fhandle.c
file.c
file_table.c
filesystems.c
fs-writeback.c
fs_context.c
fs_parser.c
fs_pin.c
fs_struct.c
fs_types.c
fsopen.c
init.c
inode.c
internal.h
ioctl.c
Kconfig
Kconfig.binfmt
kernel_read_file.c
libfs.c
locks.c
Makefile
mbcache.c
mnt_idmapping.c
mount.h
mpage.c
namei.c
namespace.c
nsfs.c
open.c
pidfs.c
pipe.c
pnode.c
pnode.h
posix_acl.c
proc_namespace.c
read_write.c New code for 6.10: 2024-05-20 12:55:12 -07:00
readdir.c
remap_range.c
select.c
seq_file.c
signalfd.c signalfd: drop an obsolete comment 2024-05-24 13:34:07 +02:00
splice.c
stack.c
stat.c
statfs.c
super.c \n 2024-05-20 12:31:43 -07:00
sync.c
sysctls.c
timerfd.c
userfaultfd.c The usual shower of singleton fixes and minor series all over MM, 2024-05-19 09:21:03 -07:00
utimes.c
xattr.c