diff options
Diffstat (limited to 'fs/cifs/file.c')
-rw-r--r-- | fs/cifs/file.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/fs/cifs/file.c b/fs/cifs/file.c index f624c4d4a393..70bd5464ffdf 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c | |||
@@ -2045,7 +2045,7 @@ cifs_write_allocate_pages(struct page **pages, unsigned long num_pages) | |||
2045 | unsigned long i; | 2045 | unsigned long i; |
2046 | 2046 | ||
2047 | for (i = 0; i < num_pages; i++) { | 2047 | for (i = 0; i < num_pages; i++) { |
2048 | pages[i] = alloc_page(__GFP_HIGHMEM); | 2048 | pages[i] = alloc_page(GFP_KERNEL|__GFP_HIGHMEM); |
2049 | if (!pages[i]) { | 2049 | if (!pages[i]) { |
2050 | /* | 2050 | /* |
2051 | * save number of pages we have already allocated and | 2051 | * save number of pages we have already allocated and |
@@ -2053,15 +2053,14 @@ cifs_write_allocate_pages(struct page **pages, unsigned long num_pages) | |||
2053 | */ | 2053 | */ |
2054 | num_pages = i; | 2054 | num_pages = i; |
2055 | rc = -ENOMEM; | 2055 | rc = -ENOMEM; |
2056 | goto error; | 2056 | break; |
2057 | } | 2057 | } |
2058 | } | 2058 | } |
2059 | 2059 | ||
2060 | return rc; | 2060 | if (rc) { |
2061 | 2061 | for (i = 0; i < num_pages; i++) | |
2062 | error: | 2062 | put_page(pages[i]); |
2063 | for (i = 0; i < num_pages; i++) | 2063 | } |
2064 | put_page(pages[i]); | ||
2065 | return rc; | 2064 | return rc; |
2066 | } | 2065 | } |
2067 | 2066 | ||