OSDN Git Service

NFS: Fix nfs_page use after free issues in fs/nfs/write.c
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 19 Sep 2006 03:20:35 +0000 (23:20 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 19 Sep 2006 15:59:10 +0000 (11:59 -0400)
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/write.c

index 8ab3cf1..7084ac9 100644 (file)
@@ -590,8 +590,8 @@ static void nfs_cancel_commit_list(struct list_head *head)
                req = nfs_list_entry(head->next);
                nfs_list_remove_request(req);
                nfs_inode_remove_request(req);
-               nfs_clear_page_writeback(req);
                dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);
+               nfs_clear_page_writeback(req);
        }
 }
 
@@ -1386,8 +1386,8 @@ nfs_commit_list(struct inode *inode, struct list_head *head, int how)
                req = nfs_list_entry(head->next);
                nfs_list_remove_request(req);
                nfs_mark_request_commit(req);
-               nfs_clear_page_writeback(req);
                dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS);
+               nfs_clear_page_writeback(req);
        }
        return -ENOMEM;
 }