* [PATCH] rbd: use GFP_NOIO in rbd_obj_request_create()
@ 2015-06-30 19:19 Ilya Dryomov
2015-06-30 20:13 ` Alex Elder
0 siblings, 1 reply; 2+ messages in thread
From: Ilya Dryomov @ 2015-06-30 19:19 UTC (permalink / raw)
To: ceph-devel
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: stable@vger.kernel.org # 3.10+
Signed-off-by: Ilya Dryomov <idryomov@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
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH] rbd: use GFP_NOIO in rbd_obj_request_create()
2015-06-30 19:19 [PATCH] rbd: use GFP_NOIO in rbd_obj_request_create() Ilya Dryomov
@ 2015-06-30 20:13 ` Alex Elder
0 siblings, 0 replies; 2+ messages in thread
From: Alex Elder @ 2015-06-30 20:13 UTC (permalink / raw)
To: Ilya Dryomov, ceph-devel
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 <elder@linaro.org>
>
> Cc: stable@vger.kernel.org # 3.10+
> Signed-off-by: Ilya Dryomov <idryomov@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;
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-06-30 20:13 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-30 19:19 [PATCH] rbd: use GFP_NOIO in rbd_obj_request_create() Ilya Dryomov
2015-06-30 20:13 ` Alex Elder
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.