nfs_end_data_update_defer(inode); 
nfs_end_data_update(inode); 
static int nfs_writepage_sync(struct nfs_open_context *ctx, struct inode *inode,		struct page *page, unsigned int offset, unsigned int count,		int how){	unsigned int	wsize = NFS_SERVER(inode)->wsize;	int		result, written = 0;	struct nfs_write_data *wdata;	wdata = nfs_writedata_alloc();	if (!wdata)		return -ENOMEM;	wdata->flags = how;	wdata->cred = ctx->cred;	wdata->inode = inode;	wdata->args.fh = NFS_FH(inode);	wdata->args.context = ctx;	wdata->args.pages = &page;	wdata->args.stable = NFS_FILE_SYNC;	wdata->args.pgbase = offset;	wdata->args.count = wsize;	wdata->res.fattr = &wdata->fattr;	wdata->res.verf = &wdata->verf;	dprintk("NFS:      nfs_writepage_sync(%s/%Ld %d@%Ld)\n",		inode->i_sb->s_id,		(long long)NFS_FILEID(inode),		count, (long long)(page_offset(page) + offset));	nfs_begin_data_update(inode);	do {		if (count < wsize)			wdata->args.count = count;		wdata->args.offset = page_offset(page) + wdata->args.pgbase;		result = NFS_PROTO(inode)->write(wdata);		if (result < 0) {			/* Must mark the page invalid after I/O error */			ClearPageUptodate(page);			goto io_error;		}		if (result < wdata->args.count)			printk(KERN_WARNING "NFS: short write, count=%u, result=%d\n",					wdata->args.count, result);		wdata->args.offset += result;	        wdata->args.pgbase += result;		written += result;		count -= result;	} while (count);	/* Update file length */	nfs_grow_file(page, offset, written);	/* Set the PG_uptodate flag? */	nfs_mark_uptodate(page, offset, written);	if (PageError(page))		ClearPageError(page);io_error:	nfs_end_data_update_defer(inode);	nfs_writedata_free(wdata);	return written ? written : result;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/951a143b3fcf15cfa9d38250b7462f821db241db/write.c/buggy/fs/nfs/write.c