inode->i_sb->s_op->dirty_inode(inode); 
mark_inode_dirty(inode); 
static int reiserfs_submit_file_region_for_write(struct reiserfs_transaction_handle *th, struct inode *inode, loff_t pos,	/* Writing position offset */						 size_t num_pages,	/* Number of pages to write */						 size_t write_bytes,	/* number of bytes to write */						 struct page **prepared_pages	/* list of pages */    ){	int status;		// return status of block_commit_write.	int retval = 0;		// Return value we are going to return.	int i;			// loop counter	int offset;		// Writing offset in page.	int orig_write_bytes = write_bytes;	int sd_update = 0;	for (i = 0, offset = (pos & (PAGE_CACHE_SIZE - 1)); i < num_pages;	     i++, offset = 0) {		int count = min_t(int, PAGE_CACHE_SIZE - offset, write_bytes);	// How much of bytes to write to this page		struct page *page = prepared_pages[i];	// Current page we process.		status =		    reiserfs_commit_page(inode, page, offset, offset + count);		if (status)			retval = status;	// To not overcomplicate matters We are going to		// submit all the pages even if there was error.		// we only remember error status to report it on		// exit.		write_bytes -= count;	}	/* now that we've gotten all the ordered buffers marked dirty,	 * we can safely update i_size and close any running transaction	 */	if (pos + orig_write_bytes > inode->i_size) {		inode->i_size = pos + orig_write_bytes;	// Set new size		/* If the file have grown so much that tail packing is no		 * longer possible, reset "need to pack" flag */		if ((have_large_tails(inode->i_sb) &&		     inode->i_size > i_block_size(inode) * 4) ||		    (have_small_tails(inode->i_sb) &&		     inode->i_size > i_block_size(inode)))			REISERFS_I(inode)->i_flags &= ~i_pack_on_close_mask;		else if ((have_large_tails(inode->i_sb) &&			  inode->i_size < i_block_size(inode) * 4) ||			 (have_small_tails(inode->i_sb) &&			  inode->i_size < i_block_size(inode)))			REISERFS_I(inode)->i_flags |= i_pack_on_close_mask;		if (th->t_trans_id) {			reiserfs_write_lock(inode->i_sb);			reiserfs_update_sd(th, inode);	// And update on-disk metadata			reiserfs_write_unlock(inode->i_sb);		} else			inode->i_sb->s_op->dirty_inode(inode);		sd_update = 1;	}	if (th->t_trans_id) {		reiserfs_write_lock(inode->i_sb);		if (!sd_update)			reiserfs_update_sd(th, inode);		status = journal_end(th, th->t_super, th->t_blocks_allocated);		if (status)			retval = status;		reiserfs_write_unlock(inode->i_sb);	}	th->t_trans_id = 0;	/* 	 * we have to unlock the pages after updating i_size, otherwise	 * we race with writepage	 */	for (i = 0; i < num_pages; i++) {		struct page *page = prepared_pages[i];		unlock_page(page);		mark_page_accessed(page);		page_cache_release(page);	}	return retval;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/9f03783ce5d851e4b98dfaf3e9eb177870f6c75d/file.c/clean/fs/reiserfs/file.c