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 | */ |