linux_dsm_epyc7002/fs/f2fs
Chao Yu 973163fc0c f2fs: reorganize f2fs_map_blocks
In this patch, we try to reorganize f2fs_map_blocks to make block mapping
flow more clear by using following structure:

/* check status of mapping */

if (unmapped) {
	/* blkaddr == NULL_ADDR || blkaddr == NEW_ADDR */

	if (create) {
		/* write path, handle dio write case here */
		alloc_and_map;
	} else {
		/*
		 * handle read cases from all call paths:
		 *     1. generic read;
		 *     2. dio read;
		 *     3. fiemap;
		 *     4. bmap
		 */
	}
}

/* map buffer_header */

Besides, this patch handles the missing case correctly for dio write:
When we fail in __allocate_data_blocks, then in f2fs_map_blocks, we will
not allocate blocks correctly for preallocated blocks, but returning with
an unmapped buffer head, which will result in failure of dio write.

Signed-off-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
2015-10-09 16:20:51 -07:00
..
acl.c f2fs: make posix_acl_create() safer and cleaner 2015-05-07 11:38:31 -07:00
acl.h
checkpoint.c f2fs: use __GFP_NOFAIL to avoid infinite loop 2015-08-24 09:37:21 -07:00
crypto_fname.c f2fs crypto: clean up error handling in f2fs_fname_setup_filename 2015-06-01 16:21:08 -07:00
crypto_key.c f2fs crypto: delete an unnecessary check before the function call "key_put" 2015-08-04 14:09:52 -07:00
crypto_policy.c f2fs crypto: do not set encryption policy for non-directory by ioctl 2015-06-01 16:21:07 -07:00
crypto.c f2fs crypto: add alloc_bounce_page 2015-06-11 15:04:20 -07:00
data.c f2fs: reorganize f2fs_map_blocks 2015-10-09 16:20:51 -07:00
debug.c f2fs: fix overflow of size calculation 2015-10-09 16:20:50 -07:00
dir.c f2fs: avoid clear valid page 2015-08-20 09:00:06 -07:00
extent_cache.c f2fs: declare f2fs_update_extent_tree_range as static 2015-10-09 16:20:50 -07:00
f2fs_crypto.h f2fs crypto: remove alloc_page for bounce_page 2015-06-01 16:21:10 -07:00
f2fs.h f2fs: fix overflow of size calculation 2015-10-09 16:20:50 -07:00
file.c f2fs: fix overflow of size calculation 2015-10-09 16:20:50 -07:00
gc.c f2fs: retry gc if one section is not successfully reclaimed 2015-08-20 09:00:12 -07:00
gc.h f2fs: add new ioctl F2FS_IOC_GARBAGE_COLLECT 2015-08-04 14:09:58 -07:00
hash.c f2fs: introduce dot and dotdot name check 2015-05-28 15:41:34 -07:00
inline.c f2fs: avoid unneeded initializing when converting inline dentry 2015-08-24 09:38:20 -07:00
inode.c f2fs: no need to lock for update_inode_page all the time 2015-10-09 16:20:50 -07:00
Kconfig f2fs: fix typo 2015-08-21 22:43:32 -07:00
Makefile f2fs: maintain extent cache in separated file 2015-08-04 14:09:58 -07:00
namei.c f2fs: go out for insert_inode_locked failure 2015-08-20 09:00:13 -07:00
node.c f2fs: cover number of dirty node pages under node_write lock 2015-10-09 16:20:49 -07:00
node.h f2fs: move existing definitions into f2fs.h 2015-05-28 15:41:27 -07:00
recovery.c f2fs: fix overflow of size calculation 2015-10-09 16:20:50 -07:00
segment.c f2fs: use __GFP_NOFAIL to avoid infinite loop 2015-08-24 09:37:21 -07:00
segment.h f2fs: avoid a build warning 2015-08-14 16:02:15 -07:00
shrinker.c f2fs: shrink free_nids entries 2015-08-20 09:00:06 -07:00
super.c f2fs: upset segment_info repair 2015-09-01 14:45:27 -07:00
trace.c f2fs: add sbi and page pointer in f2fs_io_info 2015-05-28 15:41:32 -07:00
trace.h f2fs: add sbi and page pointer in f2fs_io_info 2015-05-28 15:41:32 -07:00
xattr.c f2fs: correct return value of ->setxattr 2015-08-04 14:09:59 -07:00
xattr.h f2fs crypto: add encryption xattr support 2015-05-28 15:41:47 -07:00