Message ID | 1435691942-41015-1-git-send-email-idryomov@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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; > -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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;
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(-)