kernels/linux-2.6.24/mm/filemap.c
/**
 * __filemap_fdatawrite_range - start writeback on mapping dirty pages in range
 * @mapping:	address space structure to write
 * @start:	offset in bytes where the range starts
 * @end:	offset in bytes where the range ends (inclusive)
 * @sync_mode:	enable synchronous operation
 *
 * Start writeback against all of a mapping's dirty pages that lie
 * within the byte offsets <start, end> inclusive.
 *
 * If sync_mode is WB_SYNC_ALL then this is a "data integrity" operation, as
 * opposed to a regular memory cleansing writeback.  The difference between
 * these two operations is that if a dirty page/buffer is encountered, it must
 * be waited upon, and not just skipped over.
 */
start writeback on mapping dirty pages in range
@mapping:    address space structure to write
@start:      offset in bytes where the range starts
@end:        offset in bytes where the range ends (inclusive)
@sync_mode:  enable synchronous operation

Start writeback against all of a mapping's dirty pages that lie
within the byte offsets  inclusive.

If sync_mode is WB_SYNC_ALL then this is a "data integrity" operation, as
opposed to a regular memory cleansing writeback.  The difference between
these two operations is that if a dirty page/buffer is encountered, it must
be waited upon, and not just skipped over.
start writeback on mapping dirty pages in range @mapping : address space structure to write @start : offset in bytes where the range starts @end : offset in bytes where the range ends ( inclusive ) @sync_mode : enable synchronous operation Start writeback against all of a mapping ' s dirty pages that lie within the byte offsets inclusive . If sync_mode is WB_SYNC_ALL then this is a " data integrity " operation as opposed to a regular memory cleansing writeback . The difference between these two operations is that if a dirty page / buffer is encountered it must be waited upon and not just skipped over .
int __filemap_fdatawrite_range(struct address_space *mapping, loff_t start,
				loff_t end, int sync_mode)
{
	int ret;
	struct writeback_control wbc = {
		.sync_mode = sync_mode,
		.nr_to_write = mapping->nrpages * 2,
		.range_start = start,
		.range_end = end,
	};
	if (!mapping_cap_writeback_dirty(mapping))
		return 0;
	ret = do_writepages(mapping, &wbc);
	return ret;
}
int __filemap_fdatawrite_range ( struct address_space * mapping , loff_t start , loff_t end , int sync_mode ) { int ret ; struct writeback_control wbc = { . sync_mode = sync_mode , . nr_to_write = mapping -> nrpages * 2 , . range_start = start , . range_end = end , } ; if ( ! mapping_cap_writeback_dirty ( mapping ) ) return 0 ; ret = do_writepages ( mapping , & wbc ) ; return ret ; }
__filemap_fdatawrite_range - start writeback on mapping dirty pages in range
 @mapping:    address space structure to write
 @start:      offset in bytes where the range starts
 @end:        offset in bytes where the range ends (inclusive)
 @sync_mode:  enable synchronous operation
__filemap_fdatawrite_range - start writeback on mapping dirty pages in range @mapping : address space structure to write @start : offset in bytes where the range starts @end : offset in bytes where the range ends ( inclusive ) @sync_mode : enable synchronous operation