linux/fs/f2fs
Jaegeuk Kim c040ff9d69 f2fs: fix redundant block allocation
In direct_IO path of f2fs_file_write_iter(),
1. f2fs_preallocate_blocks(F2FS_GET_BLOCK_PRE_DIO)
   -> allocate LBA X
2. f2fs_direct_IO()
   -> return 0;

Then,
f2fs_write_data_page() will allocate another LBA X+1.

This makes EIO triggered by HM-SMR.

Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2016-11-25 10:15:50 -08:00
..
acl.c f2fs: keep dirty inodes selectively for checkpoint 2016-11-23 12:11:08 -08:00
acl.h f2fs: remove dead code f2fs_check_acl 2016-09-14 16:52:36 -07:00
checkpoint.c f2fs: make clean inodes when flushing inode page 2016-11-23 12:11:09 -08:00
data.c f2fs: fix redundant block allocation 2016-11-25 10:15:50 -08:00
debug.c f2fs: remove percpu_count due to performance regression 2016-11-23 12:11:10 -08:00
dir.c f2fs: report error of f2fs_fill_dentries 2016-11-23 12:11:12 -08:00
extent_cache.c f2fs: keep dirty inodes selectively for checkpoint 2016-11-23 12:11:08 -08:00
f2fs.h f2fs: use err for f2fs_preallocate_blocks 2016-11-25 10:15:14 -08:00
file.c f2fs: use err for f2fs_preallocate_blocks 2016-11-25 10:15:14 -08:00
gc.c f2fs: return directly if block has been removed from the victim 2016-11-23 12:11:31 -08:00
gc.h f2fs: detect idle time depending on user behavior 2016-01-11 15:56:37 -08:00
hash.c f2fs: introduce dot and dotdot name check 2015-05-28 15:41:34 -07:00
inline.c f2fs: report error of f2fs_fill_dentries 2016-11-23 12:11:12 -08:00
inode.c f2fs: record inode updating status correctly 2016-11-23 12:11:25 -08:00
Kconfig f2fs: add mount option to select fault injection ratio 2016-05-07 10:32:22 -07:00
Makefile fs crypto: move per-file encryption from f2fs tree to fs/crypto 2016-03-17 21:19:33 -07:00
namei.c f2fs: keep dirty inodes selectively for checkpoint 2016-11-23 12:11:08 -08:00
node.c f2fs: use BIO_MAX_PAGES for bio allocation 2016-11-23 12:11:07 -08:00
node.h f2fs: split free nid list 2016-11-23 12:11:00 -08:00
recovery.c Revert "f2fs: do not recover from previous remained wrong dnodes" 2016-11-23 12:11:30 -08:00
segment.c f2fs: support multiple devices 2016-11-25 10:15:13 -08:00
segment.h f2fs: use BIO_MAX_PAGES for bio allocation 2016-11-23 12:11:07 -08:00
shrinker.c f2fs: avoid casted negative value as shrink count 2016-11-23 12:11:03 -08:00
super.c f2fs: support multiple devices 2016-11-25 10:15:13 -08:00
trace.c f2fs: use bio op accessors 2016-06-07 13:41:38 -06:00
trace.h f2fs: add sbi and page pointer in f2fs_io_info 2015-05-28 15:41:32 -07:00
xattr.c f2fs: keep dirty inodes selectively for checkpoint 2016-11-23 12:11:08 -08:00
xattr.h f2fs: add missing argument to f2fs_setxattr stub 2016-03-17 21:19:47 -07:00