diff options
Diffstat (limited to 'net/sunrpc/svc.c')
| -rw-r--r-- | net/sunrpc/svc.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c index 538ca433a56c..d9017d64597e 100644 --- a/net/sunrpc/svc.c +++ b/net/sunrpc/svc.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
| 20 | #include <linux/module.h> | 20 | #include <linux/module.h> |
| 21 | #include <linux/kthread.h> | 21 | #include <linux/kthread.h> |
| 22 | #include <linux/slab.h> | ||
| 22 | 23 | ||
| 23 | #include <linux/sunrpc/types.h> | 24 | #include <linux/sunrpc/types.h> |
| 24 | #include <linux/sunrpc/xdr.h> | 25 | #include <linux/sunrpc/xdr.h> |
| @@ -133,7 +134,7 @@ svc_pool_map_choose_mode(void) | |||
| 133 | return SVC_POOL_PERNODE; | 134 | return SVC_POOL_PERNODE; |
| 134 | } | 135 | } |
| 135 | 136 | ||
| 136 | node = any_online_node(node_online_map); | 137 | node = first_online_node; |
| 137 | if (nr_cpus_node(node) > 2) { | 138 | if (nr_cpus_node(node) > 2) { |
| 138 | /* | 139 | /* |
| 139 | * Non-trivial SMP, or CONFIG_NUMA on | 140 | * Non-trivial SMP, or CONFIG_NUMA on |
| @@ -506,6 +507,10 @@ svc_init_buffer(struct svc_rqst *rqstp, unsigned int size) | |||
| 506 | { | 507 | { |
| 507 | unsigned int pages, arghi; | 508 | unsigned int pages, arghi; |
| 508 | 509 | ||
| 510 | /* bc_xprt uses fore channel allocated buffers */ | ||
| 511 | if (svc_is_backchannel(rqstp)) | ||
| 512 | return 1; | ||
| 513 | |||
| 509 | pages = size / PAGE_SIZE + 1; /* extra page as we hold both request and reply. | 514 | pages = size / PAGE_SIZE + 1; /* extra page as we hold both request and reply. |
| 510 | * We assume one is at most one page | 515 | * We assume one is at most one page |
| 511 | */ | 516 | */ |
