diff options
-rw-r--r-- | fs/nfs/direct.c | 10 | ||||
-rw-r--r-- | fs/nfs/pagelist.c | 11 | ||||
-rw-r--r-- | fs/nfs/write.c | 12 | ||||
-rw-r--r-- | include/linux/nfs_page.h | 2 |
4 files changed, 18 insertions, 17 deletions
diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c index 465ea84a2874..845e20196803 100644 --- a/fs/nfs/direct.c +++ b/fs/nfs/direct.c | |||
@@ -488,7 +488,7 @@ static void nfs_direct_write_reschedule(struct nfs_direct_req *dreq) | |||
488 | 488 | ||
489 | while (!list_empty(&failed)) { | 489 | while (!list_empty(&failed)) { |
490 | nfs_release_request(req); | 490 | nfs_release_request(req); |
491 | nfs_unlock_request(req); | 491 | nfs_unlock_and_release_request(req); |
492 | } | 492 | } |
493 | 493 | ||
494 | if (put_dreq(dreq)) | 494 | if (put_dreq(dreq)) |
@@ -521,7 +521,7 @@ static void nfs_direct_commit_complete(struct nfs_commit_data *data) | |||
521 | nfs_mark_request_commit(req, NULL, &cinfo); | 521 | nfs_mark_request_commit(req, NULL, &cinfo); |
522 | } else | 522 | } else |
523 | nfs_release_request(req); | 523 | nfs_release_request(req); |
524 | nfs_unlock_request(req); | 524 | nfs_unlock_and_release_request(req); |
525 | } | 525 | } |
526 | 526 | ||
527 | if (atomic_dec_and_test(&cinfo.mds->rpcs_out)) | 527 | if (atomic_dec_and_test(&cinfo.mds->rpcs_out)) |
@@ -662,7 +662,7 @@ static ssize_t nfs_direct_write_schedule_segment(struct nfs_pageio_descriptor *d | |||
662 | req->wb_offset = pos & ~PAGE_MASK; | 662 | req->wb_offset = pos & ~PAGE_MASK; |
663 | if (!nfs_pageio_add_request(desc, req)) { | 663 | if (!nfs_pageio_add_request(desc, req)) { |
664 | result = desc->pg_error; | 664 | result = desc->pg_error; |
665 | nfs_unlock_request(req); | 665 | nfs_unlock_and_release_request(req); |
666 | nfs_release_request(req); | 666 | nfs_release_request(req); |
667 | break; | 667 | break; |
668 | } | 668 | } |
@@ -739,7 +739,7 @@ static void nfs_direct_write_completion(struct nfs_pgio_header *hdr) | |||
739 | default: | 739 | default: |
740 | nfs_release_request(req); | 740 | nfs_release_request(req); |
741 | } | 741 | } |
742 | nfs_unlock_request(req); | 742 | nfs_unlock_and_release_request(req); |
743 | } | 743 | } |
744 | 744 | ||
745 | out_put: | 745 | out_put: |
@@ -756,7 +756,7 @@ static void nfs_write_sync_pgio_error(struct list_head *head) | |||
756 | req = nfs_list_entry(head->next); | 756 | req = nfs_list_entry(head->next); |
757 | nfs_list_remove_request(req); | 757 | nfs_list_remove_request(req); |
758 | nfs_release_request(req); | 758 | nfs_release_request(req); |
759 | nfs_unlock_request(req); | 759 | nfs_unlock_and_release_request(req); |
760 | } | 760 | } |
761 | } | 761 | } |
762 | 762 | ||
diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c index 69146f386989..aed913c833f4 100644 --- a/fs/nfs/pagelist.c +++ b/fs/nfs/pagelist.c | |||
@@ -128,10 +128,10 @@ nfs_create_request(struct nfs_open_context *ctx, struct inode *inode, | |||
128 | } | 128 | } |
129 | 129 | ||
130 | /** | 130 | /** |
131 | * nfs_unlock_request_dont_release - Unlock request and wake up sleepers. | 131 | * nfs_unlock_request - Unlock request and wake up sleepers. |
132 | * @req: | 132 | * @req: |
133 | */ | 133 | */ |
134 | void nfs_unlock_request_dont_release(struct nfs_page *req) | 134 | void nfs_unlock_request(struct nfs_page *req) |
135 | { | 135 | { |
136 | if (!NFS_WBACK_BUSY(req)) { | 136 | if (!NFS_WBACK_BUSY(req)) { |
137 | printk(KERN_ERR "NFS: Invalid unlock attempted\n"); | 137 | printk(KERN_ERR "NFS: Invalid unlock attempted\n"); |
@@ -144,11 +144,12 @@ void nfs_unlock_request_dont_release(struct nfs_page *req) | |||
144 | } | 144 | } |
145 | 145 | ||
146 | /** | 146 | /** |
147 | * nfs_unlock_request - Unlock request and release the nfs_page | 147 | * nfs_unlock_and_release_request - Unlock request and release the nfs_page |
148 | * @req: | ||
148 | */ | 149 | */ |
149 | void nfs_unlock_request(struct nfs_page *req) | 150 | void nfs_unlock_and_release_request(struct nfs_page *req) |
150 | { | 151 | { |
151 | nfs_unlock_request_dont_release(req); | 152 | nfs_unlock_request(req); |
152 | nfs_release_request(req); | 153 | nfs_release_request(req); |
153 | } | 154 | } |
154 | 155 | ||
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 553f7ef1079b..8ffd7d5ed58b 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c | |||
@@ -625,7 +625,7 @@ static void nfs_write_completion(struct nfs_pgio_header *hdr) | |||
625 | remove_req: | 625 | remove_req: |
626 | nfs_inode_remove_request(req); | 626 | nfs_inode_remove_request(req); |
627 | next: | 627 | next: |
628 | nfs_unlock_request_dont_release(req); | 628 | nfs_unlock_request(req); |
629 | nfs_end_page_writeback(req->wb_page); | 629 | nfs_end_page_writeback(req->wb_page); |
630 | nfs_release_request(req); | 630 | nfs_release_request(req); |
631 | } | 631 | } |
@@ -812,7 +812,7 @@ static int nfs_writepage_setup(struct nfs_open_context *ctx, struct page *page, | |||
812 | nfs_grow_file(page, offset, count); | 812 | nfs_grow_file(page, offset, count); |
813 | nfs_mark_uptodate(page, req->wb_pgbase, req->wb_bytes); | 813 | nfs_mark_uptodate(page, req->wb_pgbase, req->wb_bytes); |
814 | nfs_mark_request_dirty(req); | 814 | nfs_mark_request_dirty(req); |
815 | nfs_unlock_request(req); | 815 | nfs_unlock_and_release_request(req); |
816 | return 0; | 816 | return 0; |
817 | } | 817 | } |
818 | 818 | ||
@@ -1039,7 +1039,7 @@ static int nfs_do_multiple_writes(struct list_head *head, | |||
1039 | static void nfs_redirty_request(struct nfs_page *req) | 1039 | static void nfs_redirty_request(struct nfs_page *req) |
1040 | { | 1040 | { |
1041 | nfs_mark_request_dirty(req); | 1041 | nfs_mark_request_dirty(req); |
1042 | nfs_unlock_request_dont_release(req); | 1042 | nfs_unlock_request(req); |
1043 | nfs_end_page_writeback(req->wb_page); | 1043 | nfs_end_page_writeback(req->wb_page); |
1044 | nfs_release_request(req); | 1044 | nfs_release_request(req); |
1045 | } | 1045 | } |
@@ -1477,7 +1477,7 @@ void nfs_retry_commit(struct list_head *page_list, | |||
1477 | dec_bdi_stat(req->wb_page->mapping->backing_dev_info, | 1477 | dec_bdi_stat(req->wb_page->mapping->backing_dev_info, |
1478 | BDI_RECLAIMABLE); | 1478 | BDI_RECLAIMABLE); |
1479 | } | 1479 | } |
1480 | nfs_unlock_request(req); | 1480 | nfs_unlock_and_release_request(req); |
1481 | } | 1481 | } |
1482 | } | 1482 | } |
1483 | EXPORT_SYMBOL_GPL(nfs_retry_commit); | 1483 | EXPORT_SYMBOL_GPL(nfs_retry_commit); |
@@ -1555,7 +1555,7 @@ static void nfs_commit_release_pages(struct nfs_commit_data *data) | |||
1555 | dprintk(" mismatch\n"); | 1555 | dprintk(" mismatch\n"); |
1556 | nfs_mark_request_dirty(req); | 1556 | nfs_mark_request_dirty(req); |
1557 | next: | 1557 | next: |
1558 | nfs_unlock_request(req); | 1558 | nfs_unlock_and_release_request(req); |
1559 | } | 1559 | } |
1560 | nfs_init_cinfo(&cinfo, data->inode, data->dreq); | 1560 | nfs_init_cinfo(&cinfo, data->inode, data->dreq); |
1561 | if (atomic_dec_and_test(&cinfo.mds->rpcs_out)) | 1561 | if (atomic_dec_and_test(&cinfo.mds->rpcs_out)) |
@@ -1726,7 +1726,7 @@ int nfs_wb_page_cancel(struct inode *inode, struct page *page) | |||
1726 | * page as being dirty | 1726 | * page as being dirty |
1727 | */ | 1727 | */ |
1728 | cancel_dirty_page(page, PAGE_CACHE_SIZE); | 1728 | cancel_dirty_page(page, PAGE_CACHE_SIZE); |
1729 | nfs_unlock_request(req); | 1729 | nfs_unlock_and_release_request(req); |
1730 | break; | 1730 | break; |
1731 | } | 1731 | } |
1732 | ret = nfs_wait_on_request(req); | 1732 | ret = nfs_wait_on_request(req); |
diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h index 263f30a5e10d..88d166b555e8 100644 --- a/include/linux/nfs_page.h +++ b/include/linux/nfs_page.h | |||
@@ -96,7 +96,7 @@ extern bool nfs_generic_pg_test(struct nfs_pageio_descriptor *desc, | |||
96 | struct nfs_page *req); | 96 | struct nfs_page *req); |
97 | extern int nfs_wait_on_request(struct nfs_page *); | 97 | extern int nfs_wait_on_request(struct nfs_page *); |
98 | extern void nfs_unlock_request(struct nfs_page *req); | 98 | extern void nfs_unlock_request(struct nfs_page *req); |
99 | extern void nfs_unlock_request_dont_release(struct nfs_page *req); | 99 | extern void nfs_unlock_and_release_request(struct nfs_page *req); |
100 | 100 | ||
101 | /* | 101 | /* |
102 | * Lock the page of an asynchronous request | 102 | * Lock the page of an asynchronous request |