diff options
| author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2010-05-13 12:51:03 -0400 |
|---|---|---|
| committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2010-05-14 15:09:34 -0400 |
| commit | 93870d76fee22e887aa6e7e1fc904dbeca976928 (patch) | |
| tree | 4548fe7633326a9a4e39986ea94b11a36c47f831 | |
| parent | 18eb884282bbaf99700ba5b60ded782807d52408 (diff) | |
NFS: Read requests can use GFP_KERNEL.
There is no danger of deadlock should the allocation trigger page
writeback.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
| -rw-r--r-- | fs/nfs/read.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/nfs/read.c b/fs/nfs/read.c index db9b360ae19d..6e2b06e6ca79 100644 --- a/fs/nfs/read.c +++ b/fs/nfs/read.c | |||
| @@ -40,7 +40,7 @@ static mempool_t *nfs_rdata_mempool; | |||
| 40 | 40 | ||
| 41 | struct nfs_read_data *nfs_readdata_alloc(unsigned int pagecount) | 41 | struct nfs_read_data *nfs_readdata_alloc(unsigned int pagecount) |
| 42 | { | 42 | { |
| 43 | struct nfs_read_data *p = mempool_alloc(nfs_rdata_mempool, GFP_NOFS); | 43 | struct nfs_read_data *p = mempool_alloc(nfs_rdata_mempool, GFP_KERNEL); |
| 44 | 44 | ||
| 45 | if (p) { | 45 | if (p) { |
| 46 | memset(p, 0, sizeof(*p)); | 46 | memset(p, 0, sizeof(*p)); |
| @@ -50,7 +50,7 @@ struct nfs_read_data *nfs_readdata_alloc(unsigned int pagecount) | |||
| 50 | if (pagecount <= ARRAY_SIZE(p->page_array)) | 50 | if (pagecount <= ARRAY_SIZE(p->page_array)) |
| 51 | p->pagevec = p->page_array; | 51 | p->pagevec = p->page_array; |
| 52 | else { | 52 | else { |
| 53 | p->pagevec = kcalloc(pagecount, sizeof(struct page *), GFP_NOFS); | 53 | p->pagevec = kcalloc(pagecount, sizeof(struct page *), GFP_KERNEL); |
| 54 | if (!p->pagevec) { | 54 | if (!p->pagevec) { |
| 55 | mempool_free(p, nfs_rdata_mempool); | 55 | mempool_free(p, nfs_rdata_mempool); |
| 56 | p = NULL; | 56 | p = NULL; |
