From 002571a2c89593e8ce599761cba7e5537bf92d79 Mon Sep 17 00:00:00 2001 From: Alex Elder Date: Thu, 26 Jul 2012 23:37:14 -0500 Subject: [PATCH] --- yaml --- r: 331628 b: refs/heads/master c: d78fd7ae03136c0610bee33eeebb4ffe67c752d5 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/block/rbd.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index eb1e0a80f531..1cedb72cad56 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0f1d3f938527f319d830ef3082c218c77cfd159f +refs/heads/master: d78fd7ae03136c0610bee33eeebb4ffe67c752d5 diff --git a/trunk/drivers/block/rbd.c b/trunk/drivers/block/rbd.c index 02de524d4b67..e5eaa70e8826 100644 --- a/trunk/drivers/block/rbd.c +++ b/trunk/drivers/block/rbd.c @@ -568,6 +568,7 @@ static int rbd_header_from_disk(struct rbd_image_header *header, err_names: kfree(header->snap_names); header->snap_names = NULL; + header->snap_names_len = 0; err_snapc: kfree(header->snapc); header->snapc = NULL; @@ -631,9 +632,14 @@ static int rbd_header_set_snap(struct rbd_device *rbd_dev, u64 *size) static void rbd_header_free(struct rbd_image_header *header) { kfree(header->object_prefix); + header->object_prefix = NULL; kfree(header->snap_sizes); + header->snap_sizes = NULL; kfree(header->snap_names); + header->snap_names = NULL; + header->snap_names_len = 0; ceph_put_snap_context(header->snapc); + header->snapc = NULL; } /* @@ -2418,7 +2424,10 @@ static int rbd_add_parse_args(struct rbd_device *rbd_dev, out_err: kfree(rbd_dev->header_name); + rbd_dev->header_name = NULL; kfree(rbd_dev->image_name); + rbd_dev->image_name = NULL; + rbd_dev->image_name_len = 0; kfree(rbd_dev->pool_name); rbd_dev->pool_name = NULL; @@ -2470,6 +2479,7 @@ static ssize_t rbd_add(struct bus_type *bus, options); if (IS_ERR(rbd_dev->rbd_client)) { rc = PTR_ERR(rbd_dev->rbd_client); + rbd_dev->rbd_client = NULL; goto err_put_id; }