[20/23] CIFS: Move unlocking pages from wdata_send_pages()
diff mbox series

Message ID 1549051452-5968-22-git-send-email-pshilov@microsoft.com
State New
Headers show
Series
  • Improve credits and error handling on reconnects
Related show

Commit Message

Pavel Shilovsky Feb. 1, 2019, 8:04 p.m. UTC
Currently wdata_send_pages() unlocks pages after sending.
This complicates further refactoring and doesn't align
with the function name. Move unlocking to writepages.

Signed-off-by: Pavel Shilovsky <pshilov@microsoft.com>
---
 fs/cifs/file.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

Patch
diff mbox series

diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index dd8bf69..cb37b1f 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -2080,8 +2080,7 @@  wdata_send_pages(struct TCP_Server_Info *server, struct cifs_writedata *wdata,
 		 unsigned int nr_pages, struct address_space *mapping,
 		 struct writeback_control *wbc)
 {
-	int rc = 0;
-	unsigned int i;
+	int rc;
 
 	wdata->sync_mode = wbc->sync_mode;
 	wdata->nr_pages = nr_pages;
@@ -2094,7 +2093,7 @@  wdata_send_pages(struct TCP_Server_Info *server, struct cifs_writedata *wdata,
 
 	rc = adjust_credits(server, &wdata->credits, wdata->bytes);
 	if (rc)
-		goto send_pages_out;
+		return rc;
 
 	if (!wdata->cfile) {
 		cifs_dbg(VFS, "No writable handle in writepages\n");
@@ -2108,10 +2107,6 @@  wdata_send_pages(struct TCP_Server_Info *server, struct cifs_writedata *wdata,
 						       cifs_writedata_release);
 	}
 
-send_pages_out:
-	for (i = 0; i < nr_pages; ++i)
-		unlock_page(wdata->pages[i]);
-
 	return rc;
 }
 
@@ -2200,6 +2195,9 @@  static int cifs_writepages(struct address_space *mapping,
 
 		rc = wdata_send_pages(server, wdata, nr_pages, mapping, wbc);
 
+		for (i = 0; i < nr_pages; ++i)
+			unlock_page(wdata->pages[i]);
+
 		/* send failure -- clean up the mess */
 		if (rc != 0) {
 			add_credits_and_wake_if(server, &wdata->credits, 0);