patch-2.4.5 linux/fs/nfs/write.c
Next file: linux/fs/nfsd/nfs3xdr.c
Previous file: linux/fs/nfs/inode.c
Back to the patch index
Back to the overall index
- Lines: 70
- Date:
Mon May 21 12:29:14 2001
- Orig file:
v2.4.4/linux/fs/nfs/write.c
- Orig date:
Tue Apr 3 13:45:37 2001
diff -u --recursive --new-file v2.4.4/linux/fs/nfs/write.c linux/fs/nfs/write.c
@@ -457,6 +457,7 @@
* spinlock since it can run flushd().
*/
inode_schedule_scan(inode, req->wb_timeout);
+ mark_inode_dirty(inode);
}
/*
@@ -489,6 +490,7 @@
* spinlock since it can run flushd().
*/
inode_schedule_scan(inode, req->wb_timeout);
+ mark_inode_dirty(inode);
}
#endif
@@ -861,9 +863,12 @@
req = _nfs_find_request(inode, page);
if (req) {
if (!nfs_lock_request(req)) {
+ int error;
spin_unlock(&nfs_wreq_lock);
- nfs_wait_on_request(req);
+ error = nfs_wait_on_request(req);
nfs_release_request(req);
+ if (error < 0)
+ return ERR_PTR(error);
continue;
}
spin_unlock(&nfs_wreq_lock);
@@ -1013,7 +1018,6 @@
struct dentry *dentry = file->f_dentry;
struct inode *inode = dentry->d_inode;
struct nfs_page *req;
- int synchronous = file->f_flags & O_SYNC;
int status = 0;
dprintk("NFS: nfs_updatepage(%s/%s %d@%Ld)\n",
@@ -1044,24 +1048,14 @@
if (status < 0)
goto done;
- if (req->wb_bytes == PAGE_CACHE_SIZE)
- SetPageUptodate(page);
-
status = 0;
- if (synchronous) {
- int error;
-
- error = nfs_sync_file(inode, file, page_index(page), 1, FLUSH_SYNC|FLUSH_STABLE);
- if (error < 0 || (error = file->f_error) < 0)
- status = error;
- file->f_error = 0;
- } else {
- /* If we wrote past the end of the page.
- * Call the strategy routine so it can send out a bunch
- * of requests.
- */
- if (req->wb_offset == 0 && req->wb_bytes == PAGE_CACHE_SIZE)
- nfs_strategy(inode);
+ /* If we wrote past the end of the page.
+ * Call the strategy routine so it can send out a bunch
+ * of requests.
+ */
+ if (req->wb_offset == 0 && req->wb_bytes == PAGE_CACHE_SIZE) {
+ SetPageUptodate(page);
+ nfs_strategy(inode);
}
nfs_release_request(req);
done:
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)