diff -X /home/cel/src/linux/dont-diff -Naurp 10-read_release/fs/nfs/write.c 11-write_release/fs/nfs/write.c --- 10-read_release/fs/nfs/write.c 2004-02-20 17:23:21.000000000 -0500 +++ 11-write_release/fs/nfs/write.c 2004-02-20 17:29:50.000000000 -0500 @@ -736,6 +736,28 @@ done: return status; } +static void +nfs_writepage_release(struct nfs_page *req) +{ + end_page_writeback(req->wb_page); + + if (!PageError(req->wb_page)) { + if (NFS_NEED_RESCHED(req)) { + nfs_mark_request_dirty(req); + goto out; + } else if (NFS_NEED_COMMIT(req)) { + nfs_mark_request_commit(req); + goto out; + } + } + nfs_inode_remove_request(req); + +out: + nfs_clear_commit(req); + nfs_clear_reschedule(req); + nfs_unlock_request(req); +} + /* * Set up the argument/result storage required for the RPC call. */