diff -u --recursive --new-file linux-2.4.23-rc1/fs/nfs/write.c linux-2.4.23-01-fix_commit/fs/nfs/write.c
--- linux-2.4.23-rc1/fs/nfs/write.c	2003-11-16 19:24:23.000000000 -0500
+++ linux-2.4.23-01-fix_commit/fs/nfs/write.c	2003-11-16 19:33:59.000000000 -0500
@@ -1268,15 +1268,14 @@
 }
 
 #ifdef CONFIG_NFS_V3
-int nfs_commit_file(struct inode *inode, struct file *file, unsigned long idx_start,
-		    unsigned int npages, int how)
+int nfs_commit_file(struct inode *inode, struct file *file, int how)
 {
 	LIST_HEAD(head);
 	int			res,
 				error = 0;
 
 	spin_lock(&nfs_wreq_lock);
-	res = nfs_scan_commit(inode, &head, file, idx_start, npages);
+	res = nfs_scan_commit(inode, &head, file, 0, 0);
 	spin_unlock(&nfs_wreq_lock);
 	if (res)
 		error = nfs_commit_list(&head, how);
@@ -1306,7 +1305,7 @@
 			error = nfs_flush_file(inode, file, idx_start, npages, how);
 #ifdef CONFIG_NFS_V3
 		if (error == 0)
-			error = nfs_commit_file(inode, file, idx_start, npages, how);
+			error = nfs_commit_file(inode, file, how);
 #endif
 	} while (error > 0);
 	return error;
diff -u --recursive --new-file linux-2.4.23-rc1/include/linux/nfs_fs.h linux-2.4.23-01-fix_commit/include/linux/nfs_fs.h
--- linux-2.4.23-rc1/include/linux/nfs_fs.h	2003-11-16 19:26:05.000000000 -0500
+++ linux-2.4.23-01-fix_commit/include/linux/nfs_fs.h	2003-11-16 19:34:22.000000000 -0500
@@ -215,7 +215,7 @@
 extern int  nfs_scan_lru_dirty(struct nfs_server *, struct list_head *);
 extern int  nfs_scan_lru_dirty_timeout(struct nfs_server *, struct list_head *);
 #ifdef CONFIG_NFS_V3
-extern int  nfs_commit_file(struct inode *, struct file *, unsigned long, unsigned int, int);
+extern int  nfs_commit_file(struct inode *, struct file *, int);
 extern int  nfs_commit_list(struct list_head *, int);
 extern int  nfs_scan_lru_commit(struct nfs_server *, struct list_head *);
 extern int  nfs_scan_lru_commit_timeout(struct nfs_server *, struct list_head *);