diff options
author | Alex Elder <elder@dreamhost.com> | 2012-01-24 10:08:36 -0600 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2012-02-02 12:49:27 -0800 |
commit | 97bb59a03dd6767fcc00be09b0c6d9e5294eeea6 (patch) | |
tree | f04006e8040913d49fb1841ed93abed6d84308a1 /drivers/block/rbd.c | |
parent | d8fb02abdc39f92a1066313e2b17047876afa8f9 (diff) |
rbd: fix a memory leak in rbd_get_client()
If an existing rbd client is found to be suitable for use in
rbd_get_client(), the rbd_options structure is not being
freed as it should. Fix that.
Signed-off-by: Alex Elder <elder@dreamhost.com>
Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'drivers/block/rbd.c')
-rw-r--r-- | drivers/block/rbd.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index 148ab944378..7d8f8ddb335 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c @@ -380,6 +380,7 @@ static int rbd_get_client(struct rbd_device *rbd_dev, const char *mon_addr, rbdc = __rbd_client_find(opt); if (rbdc) { ceph_destroy_options(opt); + kfree(rbd_opts); /* using an existing client */ kref_get(&rbdc->kref); |