linux/fs/ext4
Jens Axboe 6e014c621e ext4: don't block for O_DIRECT if IOCB_NOWAIT is set
Running with some debug patches to detect illegal blocking triggered the
extend/unaligned condition in ext4. If ext4 needs to extend the file (and
hence go to buffered IO), or if the app is doing unaligned IO, then ext4
asks the iomap code to wait for IO completion. If the caller asked for
no-wait semantics by setting IOCB_NOWAIT, then ext4 should return -EAGAIN
instead.

Signed-off-by: Jens Axboe <axboe@kernel.dk>

Link: https://lore.kernel.org/r/76152096-2bbb-7682-8fce-4cb498bcd909@kernel.dk
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2020-06-03 23:16:55 -04:00
..
acl.c ext4: handle ext4_mark_inode_dirty errors 2020-06-03 23:16:50 -04:00
acl.h ext4: fix up remaining files with SPDX cleanups 2017-12-17 22:00:59 -05:00
balloc.c ext4: balloc: use task_pid_nr() helper 2020-06-03 23:16:52 -04:00
bitmap.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
block_validity.c ext4: save all error info in save_error_info() and drop ext4_set_errno() 2020-04-01 17:29:06 -04:00
dir.c ext4: use flexible-array member in struct fname 2020-03-14 14:43:13 -04:00
ext4_extents.h ext4: fix EXT_MAX_EXTENT/INDEX to check for zeroed eh_max 2020-06-03 23:16:49 -04:00
ext4_jbd2.c ext4: remove set but not used variable 'es' in ext4_jbd2.c 2020-04-15 23:58:49 -04:00
ext4_jbd2.h ext4: drop ext4_journal_free_reserved() 2020-06-03 23:16:53 -04:00
ext4.h fs: move the fiemap definitions out of fs.h 2020-06-03 23:16:55 -04:00
extents_status.c ext4: remove unnecessary comparisons to bool 2020-06-03 23:16:49 -04:00
extents_status.h ext4: fix extent_status trace points 2020-01-25 02:03:03 -05:00
extents.c fs: handle FIEMAP_FLAG_SYNC in fiemap_prep 2020-06-03 23:16:55 -04:00
file.c ext4: don't block for O_DIRECT if IOCB_NOWAIT is set 2020-06-03 23:16:55 -04:00
fsmap.c ext4: fix miscellaneous sparse warnings 2019-05-12 04:49:47 -04:00
fsmap.h ext4: fix up remaining files with SPDX cleanups 2017-12-17 22:00:59 -05:00
fsync.c ext4: fix race between ext4_sync_parent() and rename() 2020-06-03 23:16:51 -04:00
hash.c ext4: fix kernel oops caused by spurious casefold flag 2019-09-03 01:43:17 -04:00
ialloc.c ext4: fix buffer_head refcnt leak when ext4_iget() fails 2020-06-03 23:16:49 -04:00
indirect.c ext4: handle ext4_mark_inode_dirty errors 2020-06-03 23:16:50 -04:00
inline.c ext4: handle ext4_mark_inode_dirty errors 2020-06-03 23:16:50 -04:00
inode-test.c kunit: allow kunit tests to be loaded as a module 2020-01-09 16:42:29 -07:00
inode.c ext4: make ext_debug() implementation to use pr_debug() 2020-06-03 23:16:52 -04:00
ioctl.c ext4: remove the access_ok() check in ext4_ioctl_get_es_cache 2020-06-03 23:16:55 -04:00
Kconfig ext4: make ext_debug() implementation to use pr_debug() 2020-06-03 23:16:52 -04:00
Makefile kunit: allow kunit tests to be loaded as a module 2020-01-09 16:42:29 -07:00
mballoc.c ext4: mballoc: use lock for checking free blocks while retrying 2020-06-03 23:16:53 -04:00
mballoc.h ext4: mballoc: make mb_debug() implementation to use pr_debug() 2020-06-03 23:16:52 -04:00
migrate.c ext4: handle ext4_mark_inode_dirty errors 2020-06-03 23:16:50 -04:00
mmp.c ext4: save all error info in save_error_info() and drop ext4_set_errno() 2020-04-01 17:29:06 -04:00
move_extent.c ext4: save all error info in save_error_info() and drop ext4_set_errno() 2020-04-01 17:29:06 -04:00
namei.c ext4: handle ext4_mark_inode_dirty errors 2020-06-03 23:16:50 -04:00
page-io.c fs/buffer: Make BH_Uptodate_Lock bit_spin_lock a regular spinlock_t 2020-03-28 13:21:08 +01:00
readpage.c ext4: remove unneeded check for error allocating bio_post_read_ctx 2020-01-17 16:24:54 -05:00
resize.c ext4: fix potential race between s_flex_groups online resizing and access 2020-02-21 19:31:46 -05:00
super.c ext4: handle ext4_mark_inode_dirty errors 2020-06-03 23:16:50 -04:00
symlink.c ext4: switch to fscrypt_get_symlink() 2018-01-11 22:10:40 -05:00
sysfs.c block: move the part_stat* helpers from genhd.h to a new header 2020-03-25 09:50:09 -06:00
truncate.h ext4: handle layout changes to pinned DAX mappings 2018-07-29 17:00:22 -04:00
verity.c fs-verity: implement readahead of Merkle tree pages 2020-01-14 13:27:32 -08:00
xattr_security.c ext4: use XATTR_CREATE in ext4_initxattrs() 2018-05-10 11:52:14 -04:00
xattr_trusted.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xattr_user.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xattr.c ext4: handle ext4_mark_inode_dirty errors 2020-06-03 23:16:50 -04:00
xattr.h ext4: use flexible-array member for xattr structs 2020-03-14 14:43:13 -04:00