block_invalidatepage(page, 0); 
do_invalidatepage(page, 0); 
int block_write_full_page(struct page *page, get_block_t *get_block,			struct writeback_control *wbc){	struct inode * const inode = page->mapping->host;	loff_t i_size = i_size_read(inode);	const pgoff_t end_index = i_size >> PAGE_CACHE_SHIFT;	unsigned offset;	void *kaddr;	/* Is the page fully inside i_size? */	if (page->index < end_index)		return __block_write_full_page(inode, page, get_block, wbc);	/* Is the page fully outside i_size? (truncate in progress) */	offset = i_size & (PAGE_CACHE_SIZE-1);	if (page->index >= end_index+1 || !offset) {		/*		 * The page may have dirty, unmapped buffers.  For example,		 * they may have been added in ext3_writepage().  Make them		 * freeable here, so the page does not leak.		 */		block_invalidatepage(page, 0);		unlock_page(page);		return 0; /* don't care */	}	/*	 * The page straddles i_size.  It must be zeroed out on each and every	 * writepage invokation because it may be mmapped.  "A file is mapped	 * in multiples of the page size.  For a file that is not a multiple of	 * the  page size, the remaining memory is zeroed when mapped, and	 * writes to that region are not written out to the file."	 */	kaddr = kmap_atomic(page, KM_USER0);	memset(kaddr + offset, 0, PAGE_CACHE_SIZE - offset);	flush_dcache_page(page);	kunmap_atomic(kaddr, KM_USER0);	return __block_write_full_page(inode, page, get_block, wbc);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/aaa4059bc2dca7fa816624a28db1958c3a22df9b/buffer.c/clean/fs/buffer.c