Commit 5a60e876 authored by Ilya Dryomov's avatar Ilya Dryomov
Browse files

rbd: use GFP_NOIO in rbd_obj_request_create()

rbd_obj_request_create() is called on the main I/O path, so we need to
use GFP_NOIO to make sure allocation doesn't blow back on us.  Not all
callers need this, but I'm still hardcoding the flag inside rather than
making it a parameter because a) this is going to stable, and b) those
callers shouldn't really use rbd_obj_request_create() and will be fixed
in the future.

More memory allocation fixes will follow.

Cc: # 3.10+
Signed-off-by: default avatarIlya Dryomov <>
Reviewed-by: default avatarAlex Elder <>
parent 82cd003a
...@@ -2022,11 +2022,11 @@ static struct rbd_obj_request *rbd_obj_request_create(const char *object_name, ...@@ -2022,11 +2022,11 @@ static struct rbd_obj_request *rbd_obj_request_create(const char *object_name,
rbd_assert(obj_request_type_valid(type)); rbd_assert(obj_request_type_valid(type));
size = strlen(object_name) + 1; size = strlen(object_name) + 1;
name = kmalloc(size, GFP_KERNEL); name = kmalloc(size, GFP_NOIO);
if (!name) if (!name)
return NULL; return NULL;
obj_request = kmem_cache_zalloc(rbd_obj_request_cache, GFP_KERNEL); obj_request = kmem_cache_zalloc(rbd_obj_request_cache, GFP_NOIO);
if (!obj_request) { if (!obj_request) {
kfree(name); kfree(name);
return NULL; return NULL;
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment