diff --git a/fs/cifs/file.c b/fs/cifs/file.c index dc7175b75c26465fe497db41b0e0f5340b9bf19a..da70af2af1157f43e49b101cbfd62d1980ced096 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c @@ -2971,6 +2971,9 @@ cifs_write_from_iter(loff_t offset, size_t len, struct iov_iter *from, cifs_uncached_writev_complete); if (!wdata) { rc = -ENOMEM; + for (i = 0; i < nr_pages; i++) + put_page(pagevec[i]); + kvfree(pagevec); add_credits_and_wake_if(server, credits, 0); break; } @@ -2988,9 +2991,6 @@ cifs_write_from_iter(loff_t offset, size_t len, struct iov_iter *from, cifs_uncached_writev_complete); if (!wdata) { rc = -ENOMEM; - for (i = 0; i < nr_pages; i++) - put_page(pagevec[i]); - kvfree(pagevec); add_credits_and_wake_if(server, credits, 0); break; }