From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756312AbcIMIhA (ORCPT ); Tue, 13 Sep 2016 04:37:00 -0400 Received: from mout.web.de ([212.227.17.12]:59347 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755683AbcIMIg6 (ORCPT ); Tue, 13 Sep 2016 04:36:58 -0400 Subject: Re: [PATCH 04/47] block-rbd: Refactor two calls for memory allocations in rbd_dev_image_id() To: Ilya Dryomov References: <566ABCD9.1060404@users.sourceforge.net> <57806eb1-10ed-582e-72d0-2975e1ee967a@users.sourceforge.net> Cc: ceph-devel@vger.kernel.org, Alex Elder , Sage Weil , LKML , kernel-janitors@vger.kernel.org, Julia Lawall From: SF Markus Elfring Message-ID: Date: Tue, 13 Sep 2016 10:36:36 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:T7Y4Vvxj+e8b7NI2WOFYY2Ux7/PiKr7HHf+EAI7e4NjLUwETHZG UvXM3V5R2tFkNTFddcFrwX8t0TzI7kn2aiA8jNBSf30zVA9+Q3szTaG9CPjPGxuIf1Vs6Vc GcicVXW4NN9JS+gRgsnf1s9oprPv10+L0YLNDWL+fvtTMR8HZmDupK1421FR+p6ITfa9pTT lXdHvODWd1f8336Q3DKmQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:YLSKpxpOnMU=:040L06+a0tx4YRgzAwt1Uj OU3uuEQD/YslXxCGXChV/R2vL9JtJxcfGPCTa3PJUeHY1YeH4B5wVwnMbmdKy5KBKbjlvOF8V kWIvseO3YNVS/IBHYgWIIEzB/NOMvJsAznGI0k6kd2rtZHI37ls9iUxU6oBiSe1eYwp8eitZW B0uhEvBtd/xL1Es5ANVhDcZwYF0AHzwoyr2PLXq3OcS7Hey7tyB9VUOQ6IIC3vgVN9oxQbY1o 4yXzsj3JOKkK1yeL35jIXBSpPi0v5QdOGYgh4Btw4bMUBYri0jdXSgJu8BRNVl2BTmZ3/WXz+ SFThjxI7CbAJEkW50Zu4zHsTRFii9rr4T7SDWelSIJz9uv/5NquPXgZn8JYv6Lvk0KUth74sM k4iVtSMsx7p3JQj93fTcpCZNTjpf2x/DAkoBiDsCpxIisrp4CIQiK2ft/6zwf4V9zMs2RIuze LybnWTPChWcDjt5eojPh68gM/POHMlVJsw5vF+CV2y/IbduLhgounecLBYOdsshvR/jh9UQPd SMkIkBPzkX/yKaUpPS+DXWkPVaMz0YmoWK4OSdKuWjgKmc5iNqNCap2vVs3mSwVK4fjgAO78y z0+uqCziWn0uWrY0ITTCC2j3efTabDfR71G0PdFnFGrsfFPysHWFvlJ/L07V+wclZj7nQbXNr kuxegp6wcFS6sCvqTzl1Zw7alj33Ldek9aOSs6XYYqYBYGV0fkVOFdKgzibZaYK625JOXt49Q iBK6tvNDsk8ySRdNFHgB91sfdKj3K5TMv6ztHjOwHDglq0kChpqgAhg3jQWySOgnQBX/BNJhP F5VmvBY Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org >> @@ -5833,7 +5833,6 @@ again: >> static int rbd_dev_image_id(struct rbd_device *rbd_dev) >> { >> int ret; >> - size_t size; >> char *object_name; >> void *response; >> char *image_id; >> @@ -5854,17 +5853,16 @@ static int rbd_dev_image_id(struct rbd_device *rbd_dev) >> * First, see if the format 2 image id file exists, and if >> * so, get the image's persistent id from it. >> */ >> - size = sizeof (RBD_ID_PREFIX) + strlen(rbd_dev->spec->image_name); >> - object_name = kmalloc(size, GFP_NOIO); >> + object_name = kmalloc(sizeof(RBD_ID_PREFIX) >> + + strlen(rbd_dev->spec->image_name), >> + GFP_NOIO); >> if (!object_name) >> return -ENOMEM; >> sprintf(object_name, "%s%s", RBD_ID_PREFIX, rbd_dev->spec->image_name); >> dout("rbd id object name is %s\n", object_name); >> >> /* Response will be an encoded string, which includes a length */ >> - >> - size = sizeof (__le32) + RBD_IMAGE_ID_LEN_MAX; >> - response = kzalloc(size, GFP_NOIO); >> + response = kzalloc(sizeof(__le32) + RBD_IMAGE_ID_LEN_MAX, GFP_NOIO); >> if (!response) { >> ret = -ENOMEM; >> goto out; … > How is this any better? I find it useful to omit the local variable "size" here. > If anything, it makes the first kmalloc() call slightly less readable. I got an other impression. The refactored function call did not fit into a single line because of a well-known length limitation. Does the kzalloc() call look a bit nicer for you now? Regards, Markus