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
..
2015-06-30 19:44:57 -07:00
2015-06-23 18:02:01 -04:00
2015-10-03 16:54:17 -05:00
2015-09-03 12:57:48 -07:00
2015-06-25 17:00:42 -07:00
2015-09-08 15:35:28 -07:00
2015-10-09 16:20:51 -07:00
2015-08-16 12:35:44 -07:00
2015-09-11 12:23:51 -07:00
2015-08-13 12:32:04 -06:00
2015-09-07 14:02:24 -07:00
2015-08-13 12:32:04 -06:00
2015-04-11 22:29:40 -04:00
2015-09-08 15:35:28 -07:00
2014-11-19 13:01:20 -05:00
2015-07-09 11:42:21 -07:00
2015-08-13 12:32:04 -06:00
2015-07-23 20:59:40 +02:00
2015-08-12 15:28:45 -05:00
2015-08-31 16:27:25 -04:00
2015-09-04 16:54:41 -07:00
2015-08-13 12:32:04 -06:00