rds: rds_ib_recv_alloc_cache() should call alloc_percpu_gfp() instead
Currently, rds_ib_conn_alloc() calls rds_ib_recv_alloc_caches() without passing along the gfp_t flag. But rds_ib_recv_alloc_caches() and rds_ib_recv_alloc_cache() should take a gfp_t parameter so that rds_ib_recv_alloc_cache() can call alloc_percpu_gfp() using the correct flag instead of calling alloc_percpu(). Signed-off-by: Ka-Cheong Poon <ka-cheong.poon@oracle.com> Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
fea49f60c9
commit
f394ad28fe
@ -98,12 +98,12 @@ static void rds_ib_cache_xfer_to_ready(struct rds_ib_refill_cache *cache)
|
||||
}
|
||||
}
|
||||
|
||||
static int rds_ib_recv_alloc_cache(struct rds_ib_refill_cache *cache)
|
||||
static int rds_ib_recv_alloc_cache(struct rds_ib_refill_cache *cache, gfp_t gfp)
|
||||
{
|
||||
struct rds_ib_cache_head *head;
|
||||
int cpu;
|
||||
|
||||
cache->percpu = alloc_percpu(struct rds_ib_cache_head);
|
||||
cache->percpu = alloc_percpu_gfp(struct rds_ib_cache_head, gfp);
|
||||
if (!cache->percpu)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -118,13 +118,13 @@ static int rds_ib_recv_alloc_cache(struct rds_ib_refill_cache *cache)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int rds_ib_recv_alloc_caches(struct rds_ib_connection *ic)
|
||||
int rds_ib_recv_alloc_caches(struct rds_ib_connection *ic, gfp_t gfp)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = rds_ib_recv_alloc_cache(&ic->i_cache_incs);
|
||||
ret = rds_ib_recv_alloc_cache(&ic->i_cache_incs, gfp);
|
||||
if (!ret) {
|
||||
ret = rds_ib_recv_alloc_cache(&ic->i_cache_frags);
|
||||
ret = rds_ib_recv_alloc_cache(&ic->i_cache_frags, gfp);
|
||||
if (ret)
|
||||
free_percpu(ic->i_cache_incs.percpu);
|
||||
}
|
||||
|
Reference in New Issue
Block a user