diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-09-18 23:20:35 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-09-19 11:59:10 -0400 |
commit | 5c2d97cb31fb77981797fec46230ca005b865799 (patch) | |
tree | 8393101586bc3ed4e7577eeae215fc305b1999de /fs/nfs/write.c | |
parent | 76723de0cf5b186afe2f329eeef304c321d52bf8 (diff) |
NFS: Fix nfs_page use after free issues in fs/nfs/write.c
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/write.c')
-rw-r--r-- | fs/nfs/write.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 8ab3cf10d792..7084ac9a6455 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c | |||
@@ -590,8 +590,8 @@ static void nfs_cancel_commit_list(struct list_head *head) | |||
590 | req = nfs_list_entry(head->next); | 590 | req = nfs_list_entry(head->next); |
591 | nfs_list_remove_request(req); | 591 | nfs_list_remove_request(req); |
592 | nfs_inode_remove_request(req); | 592 | nfs_inode_remove_request(req); |
593 | nfs_clear_page_writeback(req); | ||
594 | dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); | 593 | dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); |
594 | nfs_clear_page_writeback(req); | ||
595 | } | 595 | } |
596 | } | 596 | } |
597 | 597 | ||
@@ -1386,8 +1386,8 @@ nfs_commit_list(struct inode *inode, struct list_head *head, int how) | |||
1386 | req = nfs_list_entry(head->next); | 1386 | req = nfs_list_entry(head->next); |
1387 | nfs_list_remove_request(req); | 1387 | nfs_list_remove_request(req); |
1388 | nfs_mark_request_commit(req); | 1388 | nfs_mark_request_commit(req); |
1389 | nfs_clear_page_writeback(req); | ||
1390 | dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); | 1389 | dec_zone_page_state(req->wb_page, NR_UNSTABLE_NFS); |
1390 | nfs_clear_page_writeback(req); | ||
1391 | } | 1391 | } |
1392 | return -ENOMEM; | 1392 | return -ENOMEM; |
1393 | } | 1393 | } |