[PATCH] rbd: use GFP_NOIO in rbd_obj_request_create()

2015-06-30 Thread Ilya Dryomov
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: sta...@vger.kernel.org # 3.10+
Signed-off-by: Ilya Dryomov idryo...@gmail.com
---
 drivers/block/rbd.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index b316ee48a30b..d94529d5c8e9 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -2022,11 +2022,11 @@ static struct rbd_obj_request 
*rbd_obj_request_create(const char *object_name,
rbd_assert(obj_request_type_valid(type));
 
size = strlen(object_name) + 1;
-   name = kmalloc(size, GFP_KERNEL);
+   name = kmalloc(size, GFP_NOIO);
if (!name)
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) {
kfree(name);
return NULL;
-- 
1.9.3

--
To unsubscribe from this list: send the line unsubscribe ceph-devel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] rbd: use GFP_NOIO in rbd_obj_request_create()

2015-06-30 Thread Alex Elder
On 06/30/2015 02:19 PM, Ilya Dryomov wrote:
 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.

This looks OK to me.  It's conservative; you can add a GFP parameter
in the future.

Reviewed-by: Alex Elder el...@linaro.org

 
 Cc: sta...@vger.kernel.org # 3.10+
 Signed-off-by: Ilya Dryomov idryo...@gmail.com
 ---
  drivers/block/rbd.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
 index b316ee48a30b..d94529d5c8e9 100644
 --- a/drivers/block/rbd.c
 +++ b/drivers/block/rbd.c
 @@ -2022,11 +2022,11 @@ static struct rbd_obj_request 
 *rbd_obj_request_create(const char *object_name,
   rbd_assert(obj_request_type_valid(type));
  
   size = strlen(object_name) + 1;
 - name = kmalloc(size, GFP_KERNEL);
 + name = kmalloc(size, GFP_NOIO);
   if (!name)
   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) {
   kfree(name);
   return NULL;
 

--
To unsubscribe from this list: send the line unsubscribe ceph-devel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html