patch-2.2.0-pre4 linux/fs/nfs/write.c

Next file: linux/fs/nfsd/nfsctl.c
Previous file: linux/fs/fat/inode.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.2.0-pre3/linux/fs/nfs/write.c linux/fs/nfs/write.c
@@ -263,12 +263,8 @@
 static inline void
 free_write_request(struct nfs_wreq * req)
 {
-	if (!--req->wb_count) {
-		struct inode *inode = req->wb_inode;
-		remove_write_request(&NFS_WRITEBACK(inode), req);
+	if (!--req->wb_count)
 		kfree(req);
-		nr_write_requests--;
-	}
 }
 
 /*
@@ -698,6 +694,8 @@
 		clear_bit(PG_uptodate, &page->flags);
 
 	__free_page(page);
+	remove_write_request(&NFS_WRITEBACK(inode), req);
+	nr_write_requests--;
 	dput(req->wb_dentry);
 
 	wake_up(&req->wb_wait);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov