[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <e3f1ecd6f68ed34df240346fae92f9c821503c68.camel@kernel.org>
Date: Wed, 03 Jul 2019 12:33:43 -0400
From: Jeff Layton <jlayton@...nel.org>
To: Fuqian Huang <huangfq.daxian@...il.com>
Cc: Ilya Dryomov <idryomov@...il.com>, Sage Weil <sage@...hat.com>,
Alex Elder <elder@...nel.org>, Jens Axboe <axboe@...nel.dk>,
ceph-devel@...r.kernel.org, linux-block@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 04/35] block: Use kmemdup rather than duplicating its
implementation
On Thu, 2019-07-04 at 00:26 +0800, Fuqian Huang wrote:
> kmemdup is introduced to duplicate a region of memory in a neat way.
> Rather than kmalloc/kzalloc + memcpy, which the programmer needs to
> write the size twice (sometimes lead to mistakes), kmemdup improves
> readability, leads to smaller code and also reduce the chances of mistakes.
> Suggestion to use kmemdup rather than using kmalloc/kzalloc + memcpy.
>
> Signed-off-by: Fuqian Huang <huangfq.daxian@...il.com>
> ---
> Changes in v2:
> - Fix a typo in commit message (memset -> memcpy)
>
> drivers/block/rbd.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
> index e5009a34f9c2..47ad3772dc58 100644
> --- a/drivers/block/rbd.c
> +++ b/drivers/block/rbd.c
> @@ -1068,7 +1068,7 @@ static int rbd_header_from_disk(struct rbd_device *rbd_dev,
>
> if (snap_names_len > (u64)SIZE_MAX)
> goto out_2big;
> - snap_names = kmalloc(snap_names_len, GFP_KERNEL);
> + snap_names = kmemdup(&ondisk->snaps[snap_count], snap_names_len, GFP_KERNEL);
> if (!snap_names)
> goto out_err;
>
> @@ -1088,7 +1088,6 @@ static int rbd_header_from_disk(struct rbd_device *rbd_dev,
> * snap_names_len bytes beyond the end of the
> * snapshot id array, this memcpy() is safe.
> */
> - memcpy(snap_names, &ondisk->snaps[snap_count], snap_names_len);
> snaps = ondisk->snaps;
> for (i = 0; i < snap_count; i++) {
> snapc->snaps[i] = le64_to_cpu(snaps[i].id);
Reviewed-by: Jeff Layton <jlayton@...nel.org>
Powered by blists - more mailing lists