2012/2/3 Jeff Layton <jlayton@xxxxxxxxxx>: > The gfp flags are currently set to __GPF_HIGHMEM, which doesn't allow > for any reclaim. Make this more resilient by or'ing that with > GFP_KERNEL. Also, get rid of the goto and unify the exit codepath. > > Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> > --- > 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 febf32e..6afa40f 100644 > --- a/fs/cifs/file.c > +++ b/fs/cifs/file.c > @@ -2001,7 +2001,7 @@ cifs_write_allocate_pages(struct page **pages, unsigned long num_pages) > unsigned long i; > > for (i = 0; i < num_pages; i++) { > - pages[i] = alloc_page(__GFP_HIGHMEM); > + pages[i] = alloc_page(GFP_KERNEL|__GFP_HIGHMEM); > if (!pages[i]) { > /* > * save number of pages we have already allocated and > @@ -2009,15 +2009,14 @@ cifs_write_allocate_pages(struct page **pages, unsigned long num_pages) > */ > num_pages = i; > rc = -ENOMEM; > - goto error; > + break; > } > } > > - return rc; > - > -error: > - for (i = 0; i < num_pages; i++) > - put_page(pages[i]); > + if (rc) { > + for (i = 0; i < num_pages; i++) > + put_page(pages[i]); > + } > return rc; > } > > -- > 1.7.7.6 > Acked-by: Pavel Shilovsky <piastry@xxxxxxxxxxx> -- Best regards, Pavel Shilovsky. -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html