Signed-off-by: Jeff Layton <jlay...@redhat.com>
---
 fs/cifs/file.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index aa3debbba826..d9a3657b8d43 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -2234,14 +2234,16 @@ cifs_writepage_locked(struct page *page, struct 
writeback_control *wbc)
        set_page_writeback(page);
 retry_write:
        rc = cifs_partialpagewrite(page, 0, PAGE_SIZE);
-       if (rc == -EAGAIN && wbc->sync_mode == WB_SYNC_ALL)
+       if (rc == -EAGAIN && wbc->sync_mode == WB_SYNC_ALL) {
                goto retry_write;
-       else if (rc == -EAGAIN)
+       } else if (rc == -EAGAIN) {
                redirty_page_for_writepage(wbc, page);
-       else if (rc != 0)
+       } else if (rc != 0) {
                SetPageError(page);
-       else
+               mapping_set_error(page->mapping, rc);
+       } else {
                SetPageUptodate(page);
+       }
        end_page_writeback(page);
        put_page(page);
        free_xid(xid);
-- 
2.9.3

Reply via email to