patch-2.4.18 linux/fs/nfs/write.c
Next file: linux/fs/nfsd/nfssvc.c
Previous file: linux/fs/nfs/read.c
Back to the patch index
Back to the overall index
- Lines: 38
- Date:
Wed Dec 26 17:15:45 2001
- Orig file:
linux.orig/fs/nfs/write.c
- Orig date:
Mon Feb 18 20:18:40 2002
diff -Naur -X /home/marcelo/lib/dontdiff linux.orig/fs/nfs/write.c linux/fs/nfs/write.c
@@ -213,6 +213,7 @@
unsigned int offset, unsigned int count)
{
struct nfs_page *req;
+ loff_t end;
int status;
req = nfs_update_request(file, inode, page, offset, count);
@@ -223,6 +224,10 @@
req->wb_cred = get_rpccred(NFS_I(inode)->mm_cred);
nfs_unlock_request(req);
nfs_strategy(inode);
+ end = ((loff_t)page->index<<PAGE_CACHE_SHIFT) + (loff_t)(offset + count);
+ if (inode->i_size < end)
+ inode->i_size = end;
+
out:
return status;
}
@@ -795,6 +800,7 @@
struct dentry *dentry = file->f_dentry;
struct inode *inode = dentry->d_inode;
struct nfs_page *req;
+ loff_t end;
int status = 0;
dprintk("NFS: nfs_updatepage(%s/%s %d@%Ld)\n",
@@ -826,6 +832,10 @@
goto done;
status = 0;
+ end = ((loff_t)page->index<<PAGE_CACHE_SHIFT) + (loff_t)(offset + count);
+ if (inode->i_size < end)
+ inode->i_size = end;
+
/* If we wrote past the end of the page.
* Call the strategy routine so it can send out a bunch
* of requests.
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)