aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/nfs/direct.c10
-rw-r--r--fs/nfs/pagelist.c11
-rw-r--r--fs/nfs/write.c12
-rw-r--r--include/linux/nfs_page.h2
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
745out_put: 745out_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 */
134void nfs_unlock_request_dont_release(struct nfs_page *req) 134void 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 */
149void nfs_unlock_request(struct nfs_page *req) 150void 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)
625remove_req: 625remove_req:
626 nfs_inode_remove_request(req); 626 nfs_inode_remove_request(req);
627next: 627next:
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,
1039static void nfs_redirty_request(struct nfs_page *req) 1039static 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}
1483EXPORT_SYMBOL_GPL(nfs_retry_commit); 1483EXPORT_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);
97extern int nfs_wait_on_request(struct nfs_page *); 97extern int nfs_wait_on_request(struct nfs_page *);
98extern void nfs_unlock_request(struct nfs_page *req); 98extern void nfs_unlock_request(struct nfs_page *req);
99extern void nfs_unlock_request_dont_release(struct nfs_page *req); 99extern 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